微型计算机原理与应用 教学课件 ppt 作者 陈建铎 宋彩利 程俊波2 第四章 汇编语言

上传人:E**** 文档编号:89376593 上传时间:2019-05-24 格式:PPT 页数:159 大小:538.50KB
返回 下载 相关 举报
微型计算机原理与应用 教学课件 ppt 作者  陈建铎 宋彩利 程俊波2 第四章 汇编语言_第1页
第1页 / 共159页
微型计算机原理与应用 教学课件 ppt 作者  陈建铎 宋彩利 程俊波2 第四章 汇编语言_第2页
第2页 / 共159页
微型计算机原理与应用 教学课件 ppt 作者  陈建铎 宋彩利 程俊波2 第四章 汇编语言_第3页
第3页 / 共159页
微型计算机原理与应用 教学课件 ppt 作者  陈建铎 宋彩利 程俊波2 第四章 汇编语言_第4页
第4页 / 共159页
微型计算机原理与应用 教学课件 ppt 作者  陈建铎 宋彩利 程俊波2 第四章 汇编语言_第5页
第5页 / 共159页
点击查看更多>>
资源描述

《微型计算机原理与应用 教学课件 ppt 作者 陈建铎 宋彩利 程俊波2 第四章 汇编语言》由会员分享,可在线阅读,更多相关《微型计算机原理与应用 教学课件 ppt 作者 陈建铎 宋彩利 程俊波2 第四章 汇编语言(159页珍藏版)》请在金锄头文库上搜索。

1、第4章 指令系统与汇编语言 程序设计,【内容简介】 首先讲述8086的寻址方式、指令系统、汇编语言语句格式、保护方式编程指令,然后讲述汇编语言程序设计、宏以及DOS功能调用,最后简要说明32位微处理器指令系统的功能与使用。 【重点难点】 重点是8086寻址方式、指令系统与汇编程序设计。难点是汇编语言程序设计。,第4章 指令系统与汇编语言程序设计,4.1 概述 4.2 8086寻址方式 4.3 8086指令系统 4.4 汇编语言程序格式与常用伪指令 4.5 汇编语言程序设计 4.6 汇编语言程序上机过程,4.1 概述,4.1.1 指令与程序 4.1.2 汇编语言基本概念,4.1.1指令与程序,所

2、谓指令,就是指示计算机进行某一工作的命令,而程序是为求解某一问题或进行某项工作的若干条指令的有序集合。指令如图4.1所示。一台计算机全部指令的集合称为指令系统。操作码域说明指令的类型与功能,操作数域也称为地址域,说明数据在存储器中的地址及操作结果存放的地址。,表示一条指令的二进制数称为指令字,按长度可分为单字节、双字节、三字节甚至四字节等。,按操作数的个数又可分为无操作数、单操作数、双操作数以至三操作数指令,也称为无地址、一地址、二地址以至三地址指令。 其中存放结果的称为目的操作数或目的地址,其它则称为源操作数或源地址。,用二进制代码表示指令系统的语言称为机器语言,用以设计的程序称为机器语言程

3、序。例如以下两条指令可构成一段程序,是把数据20H经寄存器CL,与累加器AL中的数相加,结果在AL中。 10110001 00100000 00000010 11000001,4.1.2汇编语言基本概念,用英文助记符表示指令系统的语言称为汇编语言,比如用ADD、SUB、JMP表示加、减、转移等操作。用汇编语言指令编写的程序称为汇编语言程序。 在计算机中,一条汇编语言指令对应于一条机器语言指令。因此,汇编语言指令实际上是机器指令的符号化表示。例如上一节的机器语言程序可由如下汇编语言指令来表示。 MOV CL,20H ADD AL,CL,汇编语言程序,人们易于编写、识别和理解。但是必须转换成机器语

4、言,计算机才能被识别和执行。这一转换过程称为汇编,由专门的汇编程序进行。通常,人们把用汇编语言编写的程序称为源程序,经汇编而生成的机器语言程序称为目标程序或目标代码。 另外,还有一些用来说明汇编过程,或对汇编过程进行辅助说明的指令,称为伪指令。,4.2 8086寻址方式,在指令中,操作数或操作数的地址可用多种方式来表示,统称为寻址方式。同一条指令可有不同的寻址方式,以说明不同的操作对象。 4.2.1 数据类型 4.2.2 寻址方式,4.2.1 数据类型,在计算机中,二进制数据有多种类型或用途。一种是指令处理的对象,即操作数;另一种是指令字;第三种是操作数的地址。在指令中,操作数又分为两种,一种

5、是参加运算或由计算机处理的对象,即数据操作数,简称为数据;另一种表示转移指令的目标地址,即转移地址。 1. 数据操作数 按照存储的位置,可分为三种:立即数、寄存器数据和存储器数据。 2. 转移地址操作数 表示转移目标地址,可在转移指令中直接给出,也可根据某一寻址方式求得。,4.2.2 寻址方式,根据操作数的两大类型,寻址方式也分为两类,即数据寻址方式和转移地址寻址方式。 1. 数据寻址方式 在数据寻址方式中,有以下7种。 (1)立即数 立即数是指指令操作数域直接给出的就是参加运算或进行某种操作的数据,又称即时数,有8位、16位等形式。对于16位数据,低字节在先,高字节在后。例如指令: MOV

6、AL,5 执行后(AL)=05H,操作示意图如图4.2(a)所示。,又如指令: MOV AX,2790H ;操作示意图如图4.2(b)所示。 立即数只能是源操作数,不能是目的操作数。 (2)寄存器寻址 是指指令操作数域给出的是存放操作数的寄存器。对于8位操作数,寄存器有AL、AH、BL、BH、CL、CH、DL、DH;对于16位操作数,寄存器有AX、BX、CX、DX、SI、DI、SP、BP。,例如指令: MOV BX,AX 操作示意图如图4.3所示。 (3)直接寻址 是指令操作数域给出的是存放操作数地址的偏移量,也称为有效地址,常用EA表示,寻址方式如图4.4所示。例如指令: MOV BX,20

7、00H 执行前(DS)= 4000H,EA=2000H,(42000H)=1FH,(42001H)=75H。 执行后(BX)= 751FH,操作示意图如图4.5所示。,如果操作数存放在其它段中,应指定段寄存器,又如指令: MOV AX,ES:2100H 执行前(ES)=1000H,EA=2100H, (12100H)=2AH,(12101H)=17H 执行后(AX)=172AH,在汇编语言中,可以使用符号地址代替数值地址。例如: MOV AX,VALUE VALUE是符号地址。符号地址出现在指令中,可省略方括号,例如 MOV AX,DATA。 (4)寄存器间接寻址 是指令操作数域给出的是存放操

8、作数地址偏移量的寄存器。寄存器主要有BX、BP、SI和DI。若没有特别说明, BX、SI、DI默认操作数在数据段(DS)中。BP默认操作数在堆栈段(SS)中。段寄存器中的的基地址左移4位与16位偏移量相加,生成20位的物理地址,如图4.6所示。,例如指令: MOV AX,BX 设(DS)=3000H,(BX)=3000H,执行后(AX)=2C7DH,操作示意图如图4.7所示。 又如指令:MOV AX,ES:SI;段寄存器为ES,数据在附加段中。,(5)寄存器相对寻址 指令操作数域给出的是一个基址寄存器和一个偏移量,基地址与偏移量相加,作为操作数地址的偏移地址EA,如图4.8所示。,例如指令:

9、MOV AX,DATADI 执行前(DS)=3000H, (DI)=2000H, DATA=300H, 执行后(AX)=201AH, 操作示意图如图4.9所示。,(6)基址加变址寻址 指令操作数域给出的是一个基址寄存器和一个变址寄存器,两寄存器中的数据相加,作为操作数的偏移地址EA。基址寄存器主要有BX、BP,变址寄存器主要有SI和DI。其中BX默认DS, BP默认SS,允许使用段跨越,如图4.10所示。,例如指令:MOV AX,BXDI 或 MOV AX,BX+DI 执行前(DS)=2100H,(BX)=0158H,(DI)=10A5H, 执行后(AX)=1234H,操作示意图如图4.11所

10、示。,(7)相对基址加变址寻址 指令操作数域给出一个基址寄存器、变址寄存器和一个偏移量,两 寄存器中的数据及偏移量相加,作为操作数的偏移地址EA。基址寄存器 主要有BX、BP,变址寄存器主要有SI和DI。BX默认DS, BP默认SS。,例如指令: MOV AX,MASKBXDI MOV AX,MASKBX+DI MOV AX,MASK+BX+DI 执行前(DS)=3000H,(BX)=2000H,(DI)=1000H, MASK=0250H 执行后(AX)=4675H,操作示意如图4.12所示。,2. 转移地址寻址方式 主要用来确定转移指令和CALL指令的目标地址,其目标地址可能在当前代码段内

11、,也可能在当前代码段外,故有4中方式。 (1)段内相对寻址 转移地址由IP的当前值与指令中给出的8位或16位偏移量相加而生成。偏移量是一个带符号的数,用补码表示。其中8位偏移量称为段内短转移SHORT,转移范围为-128+127;16位偏移量称为段内近转移NEAR,转移范围-32768+32767。其示意如图4.13所示。,段内相对寻址的特点是代码段寄存器CS的值保持不变。指令格式如下: JMP SHORT OPR ;IP(IP)+8位偏移量 JMP NEAR PTR OPR ;IP(IP)+16位偏移量 (2)段内间接寻址 转移指令的偏移地址存放在一个16位的寄存器或存储器单元中,用来取代I

12、P中的当前值。该寄存器或存储器单元可由数据寻址方式中除立即数之外的任何一种方式得到。其示意如图4.14所示。,段内间接寻址的特点是CS的值不变,IP的值由16位寄存器或存储器单元中的数据所取代。 例如指令: JMP BX ;BX中的数送入指令指针IP中 又如指令: JMP WORD PTR BXSI ;按照基址加变址的方式获取操作数,送入IP中 (3)段间直接寻址 在指令中直接给出16位段地址和16位偏移地址,分别送入CS和IP中。 例如指令:JMP FAR PTR NEXTSUB 段间寻址由FAR来说明,其中NEXTSUB是符号地址,指令直接给出,包括转移目标的偏移地址和段地址。,(4)段间

13、间接寻址 转移地址存放在存储器中的两个连续字单元中,第一个字是偏移地址,第二个字是段地址。存储器单元地址可用数据寻址方式中除立即数和寄存器直接寻址以外的任何一种寻址方式来确定,如图4.15所示。,例如指令: JMP DWORD PTR BX 由BX确定两个连续存储器单元,取出其中的数分别送入IP和CS中.,4.3 8086指令系统,8086指令系统按功能可分为6种类型,即数据传送指令、算术运算 指令、逻辑运算指令、串操作指令、程序控制指令和处理器控制指令。 4.3.1 数据传送类指令 4.3.2 算术运算类指令 4.3.3 逻辑运算与移位类指令 4.3.4 串操作类指令 4.3.5 控制转移类

14、指令 4.3.6 处理器控制类指令,4.3.1 数据传送类指令,数据传送类指令共有14条,可分为4种类型:通用数据传送指令、地址传送指令、标志寄存器传送指令和输入输出指令。 1. 通用数据传送指令 (1)传送指令 MOV 格式:MOV DST,SRC 功能:DST(SRC) 说明:DST表示目的操作数地址,SRC表示源操作数地址,其中目的操作数不能是立即数、CS和IP寄存器;两存储器单元之间和两段寄存器之间不能直接传送;立即数不能直接传送到段寄存器;允许段跨越,不影响标志位。源/目操作数传送关系如图4.16所示。,例如指令: MOV AX,DX ;源与目操作数均为16位 MOV AL,ES:B

15、X ;目的操作数8位,即说明源操作数也为8位 【例4.1】 将地址为ADD1存储器单元中的数据传送到同段内地址为ADD2的存储器单元中。 解:使用传送指令,程序如下: MOV AL,ADD1 MOV ADD2,AL,【例4.2】将立即数DAT1传送到段寄存器ES中。 解:由于ES不能直接传送立即数,因此需要借用其它寄存器来实现,程序如下: MOV AX,DAT1 MOV ES,AX (2)堆栈操作指令 压栈指令 PUSH 格式:PUSH SRC 功能:SP(SP)-2 (SP)+1,(SP)(SRC) 弹栈指令 POP 格式:POP DST 功能:DST(SP)+1,(SP) SP(SP)+2,说明:堆栈操作指令以字为单位,可以使用除立即数以外的其它寻址方式,允许段跨越;PUSH CS 合法,但POP CS非法;不影响状态标志位。 (3)交换指令 XCHG 格式:XCHG OPR1,OPR2 功能:(OPR1)(OPR2) 说明:XCHG指令不适用段寄存器和立即数,不允许两存储器单元直接交换,两操作数可以是8位或16位。允许段跨越,不影响状态标志位。例如指令: XCHG AL,BL ;两操作数均为8位 XCHG AX,SS:SI ;AX寄存器指明操作数为16位 (4)换码指令 XLAT 格式:XLAT OPR 或 XLAT 功能:AL(BX)+(AL),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号