版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言程序设计课程介绍 汇编语言是计算机系统提供给用户的最快、最有效的语言,也是能对硬件直接编程的语言。因此,对空间和时间要求很高的程序,或需要直接控制硬件的程序,必须使用汇编语言进行程序设计。教学内容 基础知识 介绍指令系统和寻址方式 伪操作和汇编语言程序格式 汇编语言程序设计方法 子程序设计方法 I/O和中断传递方式 BIOS、DOS功能调用与程序设计 高级汇编技术学习目标 通过学习本课程,了解Intel系列微型机的基本组成以及计算机中数和字符的表示方法;熟练掌握Intel8086指令系统及寻址方式,伪指令及汇编语言程序格式;掌握基本程序设计方法、I/O程序设计方法以及DOS和BIOS调
2、用;掌握宏汇编的基本概念和方法;了解汇编语言程序与高级语言程序的连接方法,熟悉上机操作和程序调试技术,初步具备软件设计的能力。1 基础知识一、计算机语言(1)机器语言。由0或1代码形成的语言。如,0000 0101 “加”。 机器语言具有以下特征: 1)是唯一的能被计算机识别并执行的语言。 2)是由0、1 代码构成的语言,和自然语言相 差甚远,不便于阅读和理解。 3)是面向机器的语言(低级语言) 1 基础知识一、计算机语言(2)汇编语言。机器指令的符号形式。如,ADD AX,50 “加” 。汇编指令:又称为符号指令,是机器指令符号化的表示。汇编语言:是由汇编指令、汇编伪指令及汇编语言的语法规则
3、组成。 汇编语言源程序:按照严格的语法规则用汇编语言编写的程序。也可简称为源程序。 汇编程序:由于计算机不能直接识别和执行汇编语言源程序,因此需要把汇编语言源程 序翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编” ,这种把汇编语言 源程序翻译成目标程序的语言加工程序称为汇编程序。汇编程序将其翻译为机器语言后,才能交付计算机硬件系统加以识别和执行。汇编程序是为计算机配置的实现把汇编语言源程序 翻译成目标程序的一种系统软件。1 基础知识一、计算机语言(2)汇编语言。 汇编语言的特点:1)汇编语言与处理器密切相关。由于不同的处理器使用不同的汇编语言,所以汇编语言 源程序与高级语言源程
4、序相比,汇编语言程序的通用性、可移植性较差。但与机器语言相比, 汇编语言易于理解和记忆,编写的源程序可读性强,源程序翻译成机器语言后的执行文件在 存储空间、执行速度方面与机器语言编写的程序大致相当。 2)汇编语言程序效率高。用汇编语言编写的源程序汇编后的目标程序短小精悍,运行效 率高。其高效率反映在时间和空间两个方面:一是运行速度快;二是目标程序短。在采用相 同算法的前提下,任何高级语言程序在时间和空间的效率都不如汇编语言程序。 3)编写汇编语言源程序比编写高级语言源程序烦琐。汇编语言是面向机器的语言,高级 语言是面向过程或面向目标、对象的语言。程序员在用汇编语言编写程序时,必须考虑包括 寄存
5、器、存储单元和寻址方式在内的几乎所有问题。在使用高级语言编写程序时,程序员不 会考虑这些细节问题。 4) 调试汇编语言程序比调试高级语言程序困难。 汇编语句指令的有限功能和程序员要注 意太多的细节问题往往是造成调试困难的两个主要原因。 1 基础知识一、计算机语言(2)汇编语言。 汇编语言的主要应用场合是: 1) 程序执行占用较短的时间, 或者占用较小存储容量的场合。 如操作系统的核心程序段, 实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序直接控制硬件的场合。如 I/O 接口电路的初始化 程序段,外部设备的低层驱动程序等。 3)需提高大型软件性能的场合。如计算
6、机系统频繁调用的子程序等。 4)没有合适的高级语言的场合。如开发最新的处理器程序时,暂时没有支持新指令的编 译程序。 1 基础知识一、计算机语言(3)高级语言。接近自然的语言。如,数学语言。X=2050高级语言具有以下特征: 1)更接近于自然语言,编程、阅读更容易。 2)一个机器是否支持该高级语言与计算机的硬件系统无关。 3)生成的目标代码效率低(时空性能差) 。只取决于有无相应的编译程序。注意:计算机能够直接执行的语言是机器语言。 汇编语言与高级语言都必须借助编译软件,经过翻译之后,生成计算机可执行的代码(机器语言)才能够执行。1 基础知识二、数制及运算 1.二进制数:由数字符号0、1构成,
7、逢2进1,借1当2。例如:0、1、10、11、100、101、110、111。 练习计算:二进制加法。 10010011? 01011001? 2.八进制数:由数字符号07构成,逢8进1,借1当8。例如:0、1、2、3、4、5、6、7、10、11、12。 练习计算:八进制加法。 0607? 6556?1 基础知识二、数制及运算 3.十六进制数:由数字符号09和字母AF构成,逢16进1, 借1当16 。例如:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、10、11、12。 练习计算:十六进制加法。 0F02? 8956?1 基础知识二、数制及运算 4.不同进制数的转换 (1)
8、十进制数转换成二进制数 (2) 二进制数转换成十进制数。 是十进制数转换成二进制数的逆运算。 (3) 二进制数转换成十六进制数。 将二进制数从低位到高位,以4位为一组分割,然 后将4位的二进制数写成对应的十六进制数。 (4) 十六进制数转换成二进制数 是二进制数转换成十六进制数的逆运算。即将十六进制数按4位二进制数展开。1 基础知识二、数制及运算 5.字符的表示: 计算机的输入/输出设备,一般都是以字符方式输入与输出,如,“a”、“A”,“1”、“2”。计算机以二进制编码的形式表示这些字符。 ASCII码 BCD码 1 基础知识补码的运算:1 无符号数的运算2 原码的表示方法 3 补码的表示方
9、法4 补码的运算 5 带符号数的范围 6 无符号数的范围 1 基础知识计算机中的常用名词术语 1. 记录数据或信息的最小单位“位”。 (1)最简单的输入设备 开关。 (2)最简单的输出设备。灯 (3)记录一位“0”或“1”的元件“触发器”。 2. 计算机内部记录一个位用“触发器”。 3. 8位称为一个字节,16位称为一个字。1 基础知识三、微型计算机的结构 计算机系统由硬件系统(Hardware)和软件系统(Software)两部分组成。 1. 硬件系统 计算机硬件系统由运算器、控制器、存储器、输入/输出设备五大部分组成。其中运算器和控制器构成中央处理器CPU(Central Processo
10、r Unit),中央处理器和存储器(Memory)构成主机。 微机的硬件系统由主机和外部设备构成。主机由微处理器(Micro Processor) 、存储器和输入/输出(I/O)接口三个部分组成,各部分由系统总线把它们连接在一起。1 基础知识三、微型计算机的结构(1)核心器件是CPU。(2)半导体存储器(RAM 、ROM )、接口电路通过总线与CPU相连。 (3)DB是数据总线,AB是地址总线,CB是控制总线。(4)外设通过接口与CPU相连接。2. 软件系统 微机的软件系统由系统软件和应用软件两大部分组成。 1 基础知识 8086/8088 CPU的内部结构 1. 8086/8088CPU 的
11、组成 微型计算机的核心部件 CPU 从功能上讲由三部分构成:运算器、控制器和寄存器组。运算器完成算术运算和逻辑运算,控制器负责整个系统的协调,寄存器组临时存放数据。2. 8088的通用寄存器组 寄存器是 CPU内部临时存放数据的部件,它的存取速度远比内存快,可以把数据通过内部总线送往运算器进行运算,或者接受来自运算器的结果。因此充分利用 CPU的内部寄存器可以加快程序的执行速度。1 基础知识 8086/8088 CPU的内部结构 8088 的通用寄存器组包括: (1)数据寄存器:数据寄存器包括 AX、BX、CX和DX 这 4个 16 位的通 用寄存器。 (2)变址寄存器:包括 SI、DI这两个
12、 16 位的通用寄存器。 (3)指针寄存器 包括 BP、SP 这两个 16 位的通用寄存器。 3. 控制寄存器 IP 和 PSW 这两个16 位的寄存器。 1)IP(Instruction Point) 指令指针寄存器。用于存放下一条指令所在的 偏移地址。 2)PSW(Program Status Word) 程序状态字寄存器,又称为标志寄存器 (FR)。 8088 使用其中的 9 位,用于存放当前程序执行的状况和运算结果的特征,根据功能,在 8088中 PSW 使用的9 位标志位可分为两组: 一组为条件标志位(或称为状态标志位): CF、ZF、SF、OF、PF、AF 这 6 个标志位。 另一
13、组是控制标志位:TF、IF、DF 这 3 个标志位。1 基础知识 8086/8088 CPU的内部结构 4. 段地址寄存器 这是一组专用寄存器,共有 4个,每个都是 16 位的,它们用于存放 逻辑地址中的段地址部分,各个寄存器的名称和代号分别: 1)CS16 位代码段寄存器。 2)DS16 位数据段寄存器。 3)ES16位附加段寄存器。4)SS16 位堆栈段寄存器。 5. 地址加法器 地址加法器能进行加法运算,但并不是运算器的一部分, 它是 8088 中专门用来计算物理地址的一个特殊加法运算部件,相加的两个操作数都是 16 位的,而运算结果则有 20位,这个 20 位的二进制数将作为 CPU
14、对内存操作时的物理地址送往地址总线。需要把它和运算器严格区分开。普通的 8bit 或者 16bit 二进制数的加法运算是由运算器完成,而物理地址的计算则是由地址加法器执行的,两个部件各司其职,互不干扰,相互间也没有直接联系。 1 基础知识四、内存组织1. 存储器有许多个单元构成。每个单元由8个触发器组成,就构成可以存放一个字节的单元电路称为存储单元。与寄存器不同的是存储器由于单元数太多,不是以名字访问,而是为每一个单元编有编号地址。注意:读/写操作不能同时进行。 读/写是以CPU为参考基准,“读”CPU从内存单元取信息,“写”CPU向内存单元装入信息。读信号有效,地址有效,信息从内存单元读出到
15、DB。 写信号有效,地址有效,信息从DB写入内存单元。1 基础知识四、内存组织2.与存储器相关的概念。 (1)以字节为单位编址,而且是唯一的地址。 (2)存储器的容量。是指系统全部的内存字节数。 (3)存储器的容量以KB为单位,2的10次方1024个字节1KB。 (4)20位地址值是无符号数。编址容量是2的20次方,容量是1MB。 (5) 1MB地址范围:00000HFFFFFH。 (6)存储器的“节”。“节”的长度16个字节,“节”边界地址XXXX0H。1 基础知识四、内存组织3.为什么要使用“节”边界的地址。 (1) 1MB容量的内存,“节”边界地址范围是00000HFFFF0H,共有64
16、个小节,实际使用时不考虑最后一位0,“节”边界地址范围是0000HFFFFH。这样记录段地址的寄存器可以采用16位寄存器。 (2)但是计算机不是使用小节。而是设置内存可以使用四个段,每一个段的开始必须是“节”边界,而且是任意的。 (3)每个段的长度最大可以设置成64KB,也可以小于64KB。 (4)对存储器单元位置的确定采用“段地址”与“段内的偏移(EA)”。(4)对存储器单元位置的确定采用“段地址”与“段内的偏移(EA)”表示。 如,04E0004E0:0000, 04E0F04E0:000F。前者称为物理地址表示法,后者称为逻辑地址表示法。 04E00:030F的逻辑地址,其物理地址=04
17、E00+030F= 030F=0510F (5)物理地址段的起始地址10H段内偏移地址。1 基础知识四、内存组织练习1 (1)8088/8086CPU的地址线是几根? (2) 8088/8086CPU存储器系统的单元长度是几位?容量是多少? (3) 地址值是有符号数吗? (4)1024个字节1KB的地址范围是: 00000H H。 (5)16个字节的地址范围是: 00000H H。 (6)16个字节的地址范围是: 00010H H。1 基础知识四、内存组织解答1: (1)8088/8086CPU的地址线是20根。 (2) 8088/8086CPU存储器系统的单元长度是8位。容量是多少1MB。
18、(3) 20位地址值是无符号数。 (4)2的10次方1024个字节1KB的地址范围是:00000H 003FFH。 (5)16个字节的地址范围是:00000H 0000FH。 (6)16个字节的地址范围是:00010H0001FH。1 基础知识8088/8086CPU的内存组织 1. 内存储器被分为几个逻辑段,段内用16位的地址寻址。16位的地址可以编址:2的16次方64K, 范围0000HFFFFH,段的长度最大64KB。 2. 段的起始地址也是16位,必须选在节边界位置,地址的低4位是0000。 3.实际使用中内存地址的表示方法。 段地址(段的起始地址) :逻辑地址(段内偏移地址) 物理地
19、址段的起始地址10H段内偏移地址1 基础知识8088/8086CPU的内存组织 练习2:(1)逻辑段的起始地址要求是什么?起始段必须从00000、10000和20000开始吗? (2)一个逻辑段的最大长度是多少?段内偏移地址的范围? (3)物理地址是几位?逻辑地址是几位? (4)一个逻辑段的长度必须是最大长度吗? (5)段地址是几位?1 基础知识8088/8086CPU的内存组织 解答2: (1)逻辑段的起始地址要求是20位物理地址的低4位是 0000。起始段不一定从00000、10000和20000开始。 (2)一个逻辑段的最大长度是64K。段内偏移地址范围 0000HFFFFH。 (3)物
20、理地址是20位。逻辑地址是16位。 (4)一个逻辑段的长度不必是最大长度64K。 (5)段地址是16位。1 基础知识段寄存器的使用 1. 8088汇编语言程序,包含有4个段:指令段、数据段、堆栈段和附加数据段。 2. 4个段寄存器。CS指令段寄存器。DS数据段寄存器。SS堆栈段寄存器。ES附加数据段寄存器。存放每个段的段起始地址。均是16位长度。3. 每一个段的作用。 指令段:存放正在运行程序的指令序列。 数据段:存放当前运行程序所用到的数据。 堆栈段:内存的一个区域,以后进先出的方式工作。 4. 指令段的偏移地址由指令指针寄存器IP给出。5. 堆栈段的偏移地址由堆栈指针寄存器SP给出。6.
21、数据段的偏移地址由指令的操作数地址给出。1 基础知识五 堆栈组织 堆栈是用来暂存一批后面需要引用的数值数据或地址数据的一段特别存储区,在堆栈中 按“先进后出”或“后进先出”的原则存取数据。 8086/8088 微处理器采用了存储器分段技术,用堆栈段来表示上述特殊区域。堆栈段中存取数据的地址由堆栈寄存器 SS 和堆栈指针 SP 来确定。堆栈寄存器 SS 存放堆栈段的首地址,堆栈指针 SP 中存放栈顶的地址,此地址表示栈顶离段首址的偏移量,存取数据都在栈顶进行。 8086/8088 的堆栈操作有两种:入栈操作 PUSH 和出栈操作 POP,均为 16位的字操作, 而且操作都在栈顶进行。1 基础知识六 专用和保留的存储单元 INTEL 公司为了保证与未来的 INTEL 产品的兼容性,规定在存储区的最低地址区和最高地址区保留了一些单元供 CPU专用,或为将来开发软件产品和硬件产品使用。其中: 1)00000H0007FH(共128B):用于中断,以存放中断向量表; 2)FFFFOHFFFFFH(共 16B):用于系统复位启动。 在 8086/8088 系统中也作了相应的规定: 1)00000H003FFH(共 1KB) :用来存放中断向量表。 2)B0000HBOFFFH(共 4KB) :是单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级物理测量小灯泡的电功率课件
- 2025届北京市人大学附属中学高三下学期一模考试英语试题含解析
- 几何意义及应用课件
- 湖南省郴州市一中2025届高三(最后冲刺)数学试卷含解析
- 《百合花》课件 2024-2025学年统编版高中语文必修上册
- 山东省昌邑市文山中学2025届高三适应性调研考试语文试题含解析
- 北师大版四年级数学下册教案表格式
- 湖北省武汉市钢城第四中学2025届高考冲刺押题(最后一卷)英语试卷含解析
- 2025届浙江省钱清中学高三适应性调研考试语文试题含解析
- 上海杨浦高级中学2025届高三压轴卷英语试卷含解析
- 小分子水可行性方案
- 三年级上册《劳动》期末试卷及答案
- 四等水准测量记录表格
- 机械设计基础课程设计说明书-带式运输机的单级直齿圆柱齿轮减速器
- 质量手册培训课件
- 《赤壁之战》课文讲解
- 如何给小孩讲保险知识讲座
- 部编版四年级道德与法治上册期末复习计划
- 2023年中山市房地产市场年报(扫描版)-世联行
- 公路工程检测技术 课件 任务2.1无机结合料稳定材料检测
- 电影第一出品单位变更协议模板
评论
0/150
提交评论