8086指令系统系统课件.ppt

上传人(卖家):三亚风情 文档编号:3347694 上传时间:2022-08-22 格式:PPT 页数:134 大小:1.61MB
下载 相关 举报
8086指令系统系统课件.ppt_第1页
第1页 / 共134页
8086指令系统系统课件.ppt_第2页
第2页 / 共134页
8086指令系统系统课件.ppt_第3页
第3页 / 共134页
8086指令系统系统课件.ppt_第4页
第4页 / 共134页
8086指令系统系统课件.ppt_第5页
第5页 / 共134页
点击查看更多>>
资源描述

1、8086指令系统系统 第1页,共134页。第第4 4章章 80868086指令系统系统指令系统系统 本章重点:本章重点:掌握掌握8086/8088 CPU8086/8088 CPU的寻址方式、指令系统中的寻址方式、指令系统中指令的分类及其常用指令的格式和功能。指令的分类及其常用指令的格式和功能。本章难点:本章难点:灵活运用指令解决问题及其快速查阅指令表。灵活运用指令解决问题及其快速查阅指令表。第2页,共134页。概述概述指令是微处理器执行某种操作的命令,微处理器全部指令指令是微处理器执行某种操作的命令,微处理器全部指令的集合称为指令系统(指令集)。的集合称为指令系统(指令集)。指令有两种书写格

2、式:机器指令和符号指令。指令有两种书写格式:机器指令和符号指令。F机器指令机器指令指令的二进制数描述指令的二进制数描述硬件只能识别机器指令,用机器指令书写的程序可以直接运行硬件只能识别机器指令,用机器指令书写的程序可以直接运行F符号指令符号指令用规定的助记符和规定的书写格式书用规定的助记符和规定的书写格式书写的指令写的指令与机器指令一一对应,需要翻译成机器指令才能运行与机器指令一一对应,需要翻译成机器指令才能运行10110000 00000001 MOV AL,11.指令指令第3页,共134页。2.程序程序程序是为解决某一问题而编写在一起的指令序列程序是为解决某一问题而编写在一起的指令序列机器

3、语言程序机器语言程序:由机器指令书写的程序:由机器指令书写的程序汇编语言程序汇编语言程序:由符号指令书写的程序:由符号指令书写的程序高级语言程序高级语言程序:由高级语言书写的程序,高级语言的基础是:由高级语言书写的程序,高级语言的基础是语句,而不是处理器的指令系统语句,而不是处理器的指令系统汇编语言程序和高级语言程序必须先翻译成机器语言程序才能执行。这一翻译过汇编语言程序和高级语言程序必须先翻译成机器语言程序才能执行。这一翻译过程对汇编语言程序叫做程对汇编语言程序叫做汇编汇编(assemble),对高级语言程序叫做),对高级语言程序叫做编译编译(compilation)或)或解释解释(inte

4、rpretation)第4页,共134页。符号指令的书写格式为:符号指令的书写格式为:标号标号:操作码助记符操作码助记符 操作数助记符操作数助记符 ;注释注释标号代表该指令在存储器中的地址,为分支、循环提标号代表该指令在存储器中的地址,为分支、循环提供转移目标。供转移目标。可选可选操作码助记符如操作码助记符如ADD,MOV等,指出指令要实现的功等,指出指令要实现的功能能操作数是指令操作的对象。当一条指令需要一个以上操作数是指令操作的对象。当一条指令需要一个以上的操作数时,操作数间用逗号分隔,逗号前为目标操的操作数时,操作数间用逗号分隔,逗号前为目标操作数,逗号后为源操作数。作数,逗号后为源操作

5、数。注释可增强可读性。注释可增强可读性。可选可选第5页,共134页。3.X86系列微处理器指令系统的发展系列微处理器指令系统的发展基本指令集基本指令集8086/8088116条指令条指令基本指令集基本指令集增增强强指指令令集集系系统统控控制制指指令令集集保护模式保护模式实模式实模式Pentium306条指令条指令第6页,共134页。4.1 4.1 寻址方式寻址方式寻址方式:寻址方式是指在指令中用于说明操作数所在地寻址方式:寻址方式是指在指令中用于说明操作数所在地址的方法。址的方法。8086指令系统把寻址方式分为与数据有关的寻指令系统把寻址方式分为与数据有关的寻址方式和与地址有关的寻址方式两类。

6、址方式和与地址有关的寻址方式两类。操作数有三种可能的存放方式:操作数有三种可能的存放方式:直接包含在指令中直接包含在指令中 立即数立即数 立即寻址立即寻址包含在某个寄存器中包含在某个寄存器中 寄存器操作数寄存器操作数 寄存器寻址寄存器寻址在内存中在内存中 存储器操作数(内存操作数)存储器操作数(内存操作数)存储器寻址存储器寻址第7页,共134页。(1)(1)立即寻址方式立即寻址方式 定义:有一部分指令所用的定义:有一部分指令所用的8 8位或位或1616位操作数就直接位操作数就直接放在指令中,紧跟在操作码的后面,与操作码一同放放在指令中,紧跟在操作码的后面,与操作码一同放在代码段区域中。在代码段

7、区域中。用途:主要用来给寄存器或储存单元赋值。用途:主要用来给寄存器或储存单元赋值。MOV ALMOV AL,80H80H4.1 4.1 寻址方式寻址方式4.1.1 4.1.1 与数据有关的寻址方式与数据有关的寻址方式 第8页,共134页。(2)(2)寄存器寻址方式寄存器寻址方式定义:指令中操作数由寄存器提供的寻址方式。定义:指令中操作数由寄存器提供的寻址方式。MOV DLMOV DL,AL AL INC CX INC CX 4.1 4.1 寻址方式寻址方式4.1.1 4.1.1 与数据有关的寻址方式与数据有关的寻址方式 第9页,共134页。(3)(3)直接寻址方式直接寻址方式定义:有效地址定

8、义:有效地址EAEA在指令的操作码后面直接给出在指令的操作码后面直接给出的寻址方式。的寻址方式。说明:默认段寄存器说明:默认段寄存器DSDS,若操作数在其他段,若操作数在其他段,应在指令中使用段跨越前缀。应在指令中使用段跨越前缀。即:即:EA=EA=段寄存器:位移量;段寄存器:位移量;PA=(PA=(段寄存器段寄存器)左移左移4 4位位移量位位移量 MOV AXMOV AX,1000H1000H4.1 4.1 寻址方式寻址方式4.1.1 4.1.1 与数据有关的寻址方式与数据有关的寻址方式 第10页,共134页。指令中的操作数部分直接给出操作数的有效地址指令中的操作数部分直接给出操作数的有效地

9、址EA,操作数可以是操作数可以是16位或位或32位整数,操作数默认在位整数,操作数默认在DS段中段中MOV AX,3000H低地址低地址高地址高地址CS段段操作码操作码00H30H34H12H34H12HAXDS段段5000053000DS5000 0300053000+第11页,共134页。如果操作数在如果操作数在DS以外的其他段(以外的其他段(CS,SS,ES)中,指)中,指令中必须包含段超越前缀令中必须包含段超越前缀MOV AX,ES:3000H低地址低地址高地址高地址CS段段操作码操作码00H30H34H12H34H12HAXFS段段2000023000ES2000 030002300

10、0+第12页,共134页。(4)(4)寄存器间接寻址方式寄存器间接寻址方式定义:定义:EAEA存放在由指令指明的寄存器中;只有通过访问寄存放在由指令指明的寄存器中;只有通过访问寄存器才间接得到存器才间接得到EAEA。(BXBX)(SISI)操作数存放在由操作数存放在由DSDS指示的数据段。指示的数据段。(DIDI)PA=(DS)PA=(DS)左移左移4 4位位+(BX)/+(BX)/(SISI)/(DIDI)(BPBP)操作数存放在由操作数存放在由SSSS指示的堆栈段中。指示的堆栈段中。PA=(SS)PA=(SS)左移左移4 4位位+(BP)+(BP)如果如果DS=2000HDS=2000H,

11、SI=1000HSI=1000H,21000H=40H21000H=40H,21001=32H21001=32H。MOV AXMOV AX,SISI指令执行后结果:指令执行后结果:AX=3240HAX=3240H。4.1.1 4.1.1 与数据有关的寻址方式与数据有关的寻址方式 第13页,共134页。低地址低地址高地址高地址CS段段操作码操作码34H12H34H12HAXSS段段7000073000SS7000 0300073000+MOV AX,BPBP第14页,共134页。(5)(5)寄存器相对寻址方式寄存器相对寻址方式定义:定义:以寄存器以寄存器(BX(BX、SISI、DIDI和和BP)

12、BP)内容为基地址加内容为基地址加上位移量上位移量(8(8位或位或1616位位)得到有效地址得到有效地址EAEA的寻址方的寻址方式。式。4.1 4.1 寻址方式寻址方式4.1.1 4.1.1 与数据有关的寻址方式与数据有关的寻址方式 第15页,共134页。低地址低地址高地址高地址CS段段操作码操作码00H15H34H12H34H12HDXDS段段7000073500BX150073500+MOV DX,BX+1500DS7000 02000第16页,共134页。若选择若选择BXBX、SISI、DIDI寄存器相对寻址,存放寄存器相对寻址,存放操作数的段寄存器默认为操作数的段寄存器默认为DSDS,

13、若选择,若选择BPBP寄存器寄存器相对寻址,则对应的段寄存器默认为相对寻址,则对应的段寄存器默认为SSSS。如果。如果操作数不在默认段,则要用前缀指出相应的段操作数不在默认段,则要用前缀指出相应的段寄存器名。即操作数的有效地址为:寄存器名。即操作数的有效地址为:位位移量16位位移量8DIISBPBXEA MOV AX MOV AX,SI+10HSI+10H4.1.1 4.1.1 与数据有关的寻址方式与数据有关的寻址方式 第17页,共134页。(6)(6)基址变址寻址方式基址变址寻址方式定义:由基址寄存器定义:由基址寄存器(BX(BX,BP)BP)的内容加上变址的内容加上变址寄存器寄存器(SI(

14、SI,DI)DI)的内容得到操作数有效地址的内容得到操作数有效地址EAEA的寻址方式。的寻址方式。操作数的有效地址为:操作数的有效地址为:DISIBPBXEAMOV AXMOV AX,BX+DIBX+DI设设DS=1000HDS=1000H,BX=5000HBX=5000H,DI=2000HDI=2000H,在执行时,有效地,在执行时,有效地址为址为7000H7000H,指令执行结果为,指令执行结果为17000H17000H和和17001H17001H两单元的内两单元的内容取到容取到AXAX中。中。4.1.1 4.1.1 与数据有关的寻址方式与数据有关的寻址方式 第18页,共134页。(7)(

15、7)基址变址相对寻址方式基址变址相对寻址方式 由基址寄存器由基址寄存器(BX(BX,BP)BP)的内容加上变址寄存的内容加上变址寄存器器(SI(SI,DI)DI)的内容,再加上位移量的内容,再加上位移量(8(8位或位或1616位位)得到操作数有效地址得到操作数有效地址EAEA的方式称为基址变址相对的方式称为基址变址相对寻址方式。寻址方式。操作数的有效地址为:操作数的有效地址为:MOV AX,BX+SI+4500H 若若 DS=3000H,BX=2000H,SI=1000H,37500H=56H,37501H=12H,指令执行后指令执行后 AX=1256H。位位移量位位移量168DISIBPBX

16、EA4.1.1 4.1.1 与数据有关的寻址方式与数据有关的寻址方式 第19页,共134页。单元单元(0,0)单元单元(0,1)单元单元(0,n)(位移量)(位移量)二维数组的基址加变址寻址方式二维数组的基址加变址寻址方式基址寄存器基址寄存器+MOV AX,BX+SI+100H单元单元(1,0)单元单元(1,n)单元单元(1,1)单元单元(m,n)变址寄存器变址寄存器+第20页,共134页。在在80868086指令系统中,有一些对指令的地址进行寻指令系统中,有一些对指令的地址进行寻址的指令,这种寻址方式叫与地址有关的寻址方式。址的指令,这种寻址方式叫与地址有关的寻址方式。(1)(1)段内直接寻

17、址段内直接寻址 用段内直接寻址方式时,指令中给出一个相对用段内直接寻址方式时,指令中给出一个相对位移量,有效转移地址为位移量,有效转移地址为IPIP的当前内容再加上一个的当前内容再加上一个8 8位或位或1616位的位移量。段内直接转移寻址也称为相对位的位移量。段内直接转移寻址也称为相对寻址。寻址。4.1.24.1.2与地址有关的寻址方式与地址有关的寻址方式 第21页,共134页。(2)(2)段内间接寻址段内间接寻址 用段内间接寻址方式时,有效地址总是在寄存器用段内间接寻址方式时,有效地址总是在寄存器中或者在内存单元中,段内间接寻址方式可适用于于中或者在内存单元中,段内间接寻址方式可适用于于无条

18、件转移指令和调用指令。无条件转移指令和调用指令。(3)(3)段间直接寻址段间直接寻址 用段间直接寻址方式进行寻址时,指令中要用段间直接寻址方式进行寻址时,指令中要给出转移地址的段值和偏移量。产生转移时,将给出转移地址的段值和偏移量。产生转移时,将段值送入段值送入CSCS中,将偏移量送入中,将偏移量送入IPIP中。用这种寻址中。用这种寻址方式,可以提供一种使程序从一个代码段转移到方式,可以提供一种使程序从一个代码段转移到另一个代码段的方法。另一个代码段的方法。4.1.24.1.2与地址有关的寻址方式与地址有关的寻址方式 第22页,共134页。(4)(4)段间间接寻址段间间接寻址 在段间间接寻址方

19、式下产生转移时,在段间间接寻址方式下产生转移时,IPIP和和CSCS的内容用内存中的内容用内存中2 2个连续的字来替换。而对这个连续的字来替换。而对这2 2个个内存字,可以通过对数据的各种寻址方式来访问,内存字,可以通过对数据的各种寻址方式来访问,不过立即数寻址方式和寄存器寻址方式除外。段不过立即数寻址方式和寄存器寻址方式除外。段间转移和段内间接转移必须是无条件转移指令和间转移和段内间接转移必须是无条件转移指令和调用指令。换句话说,条件转移指令只能用段内调用指令。换句话说,条件转移指令只能用段内直接寻址方式,而且转移范围只能是指令所在位直接寻址方式,而且转移范围只能是指令所在位置前后的置前后的

20、-128-128+127+127个单元。个单元。4.1.24.1.2与地址有关的寻址方式与地址有关的寻址方式 第23页,共134页。总结:总结:寻址方式既针对源操作数,也针对目标操作数寻址方式既针对源操作数,也针对目标操作数实模式下段的最大长度为实模式下段的最大长度为64KB,因此必须保证有,因此必须保证有效地址不超过效地址不超过FFFFH立即立即 寄存器寄存器 寄存器间接寄存器间接 寄存器相对寄存器相对 直接直接 基址变址基址变址 相对基址变址相对基址变址第24页,共134页。8086 808680888088的指令系统中包含的指令系统中包含133133条基本指令,条基本指令,可以分为以下六

21、个功能组。可以分为以下六个功能组。(1)(1)传送指令;传送指令;(2)(2)逻辑运算和移位指令;逻辑运算和移位指令;(3)(3)控制转移指令;控制转移指令;(4)(4)算术运算指令;算术运算指令;(5)(5)串操作指令;串操作指令;(6)(6)处理器控制指令。处理器控制指令。4.2 80864.2 8086指令系统指令系统 第25页,共134页。80868086数据传送指令有如下四类:数据传送指令有如下四类:(1)(1)通用传送指令;通用传送指令;(2)(2)累加器专用传送指令;累加器专用传送指令;(3)(3)地址传送指令;地址传送指令;(4)(4)标志传送指令。标志传送指令。4.2 808

22、64.2 8086指令系统指令系统 4.2.1 4.2.1 传送指令传送指令 第26页,共134页。1 1通用传送指令通用传送指令(General Purpose TransferGeneral Purpose Transfer)通用传送指令中包括通用传送指令中包括MOVMOV、XCHGXCHG、堆栈和地、堆栈和地址传送指令。址传送指令。(1)(1)最基本的传送指令最基本的传送指令格式:格式:MOV DSTMOV DST,SRCSRC功能:把一个字节或字的源操作数送到目标操功能:把一个字节或字的源操作数送到目标操 作数所在的单元。作数所在的单元。例例:MOV AL MOV AL,BLBL ;B

23、LBL中的中的8 8位数据送位数据送ALAL 4.2.1 4.2.1 传送指令传送指令 第27页,共134页。MOV MEM,REG MOV REG,MEM MOV REG1,REG2 MOV REG,DATA MOV MEM,DATA MOV SREG,REG MOV SREG,MEM MOV REG,SREG MOV MEM,SREG具体指令具体指令可以字型,也可以字节型,但是必须匹配只能是字型操作MOV AX,100MOV AX,100H的区别?的区别?第28页,共134页。l操作数即可以是字节型,也可以是字型,操作数即可以是字节型,也可以是字型,但两个类型必须相同。但两个类型必须相同。

24、l两个操作数不能都是存储器操作数两个操作数不能都是存储器操作数l代码段寄存器不能是目标操作数代码段寄存器不能是目标操作数l段寄存器不能直接用立即数赋值段寄存器不能直接用立即数赋值l两个操作数必须有一个能确定类型两个操作数必须有一个能确定类型l所有所有MOV指令不影响标志寄存器指令不影响标志寄存器注意:注意:第29页,共134页。(2)(2)堆栈操作指令堆栈操作指令 堆栈操作指令分为:入栈指令堆栈操作指令分为:入栈指令PUSHPUSH和出栈指令和出栈指令POPPOP。格式:格式:PUSH SRCPUSH SRC功能:堆栈指针功能:堆栈指针SPSP减减2 2后,把一个字的源操作数传送到目后,把一个

25、字的源操作数传送到目 的操作数所在的单元。的操作数所在的单元。格式:格式:POP DSTPOP DST功能:把功能:把SPSP指出的栈顶中的一个字传送到目标操作数所指出的栈顶中的一个字传送到目标操作数所 在的单元,然后加在的单元,然后加2 2。说明:堆栈是按说明:堆栈是按“先进后出先进后出”原则工作的一段存储器区原则工作的一段存储器区 域。域。例例:PUSH AXPUSH AX ;将;将AXAX的内容推入堆栈的内容推入堆栈 PUSH DSPUSH DS ;将;将DSDS的内容推入堆栈的内容推入堆栈 PUSH BXPUSH BX ;将栈顶两单元弹出送;将栈顶两单元弹出送BX BX 4.2.1 4

26、.2.1 传送指令传送指令 第30页,共134页。注释注释 所有堆栈操作都是所有堆栈操作都是16位的操作位的操作 除除CS外,段寄存器都可以作为外,段寄存器都可以作为POP的操的操作数作数 栈操作不允许立即数栈操作不允许立即数 不影响标志寄存器不影响标志寄存器第31页,共134页。(3)(3)交换指令交换指令格式:格式:XCHG DSTXCHG DST,SRCSRC功能:使源操作数与目的操作数相互交换。功能:使源操作数与目的操作数相互交换。说明:交换指令说明:交换指令XCHGXCHG可以实现字节交换,也可以实现字节交换,也 可以实现字交换。可以实现字交换。例例:XCHG ALXCHG AL,B

27、L BL XCHG 2530 XCHG 2530,CXCX4.2.1 4.2.1 传送指令传送指令 第32页,共134页。注释注释 可以字节,也可以字操作,但是类型要可以字节,也可以字操作,但是类型要一致一致 不能出现段寄存器不能出现段寄存器 不能两个存储器操作数不能两个存储器操作数 不能有立即数不能有立即数 不影响标志寄存器不影响标志寄存器第33页,共134页。2 2累加器专用传送指令累加器专用传送指令 累加器专用传送指令主要有输入指令累加器专用传送指令主要有输入指令ININ、输出、输出指令指令OUTOUT和换码指令和换码指令XLATXLAT。(1)(1)输入输出指令输入输出指令格式:格式:

28、IN AL,PORTIN AL,PORT功能:把来自端口功能:把来自端口PORTPORT的一个字节送入的一个字节送入ALAL寄寄 存器中存器中4.2.1 4.2.1 传送指令传送指令 第34页,共134页。2 2累加器专用传送指令累加器专用传送指令输入输出指令输入输出指令格式:格式:IN AX,PORTIN AX,PORT功能:把来自功能:把来自PORTPORT和和PORT+1PORT+1两个端口的数据构两个端口的数据构 成一个字送入成一个字送入AXAX寄存器中寄存器中格式:格式:OUT PORT,ALOUT PORT,AL功能:把功能:把ALAL寄存器中的一个字节送入端口寄存器中的一个字节送

29、入端口PORTPORT格式:格式:OUT PORT,AXOUT PORT,AX功能:把功能:把AXAX寄存器中的一个字送入寄存器中的一个字送入PORTPORT和和PORT+1PORT+1 两个端口两个端口 4.2.1 4.2.1 传送指令传送指令 第35页,共134页。注释注释 可以可以8位也可以位也可以16位,位,8位时位时AL,16位时位时AX 若端口地址小于若端口地址小于256,可以直接在指令中,可以直接在指令中给出,否则必须由给出,否则必须由DX提供端口地址提供端口地址 所有输入或输出必须借助累加器所有输入或输出必须借助累加器AL或或AX 传输,其他寄存器不行传输,其他寄存器不行第36

30、页,共134页。(2)(2)换码指令换码指令(Translate)(Translate)格式:格式:XLAT OPRD XLAT OPRD 功能:设功能:设BXBX指向一张指向一张256256个字节的表的起个字节的表的起点,点,ALAL为表的索引值,本指令执行后为表的索引值,本指令执行后ALAL中即为查表所得到的信息,中即为查表所得到的信息,XLATXLAT经常用经常用来把一种代码翻译成另一个代码。来把一种代码翻译成另一个代码。4.2.1 4.2.1 传送指令传送指令 第37页,共134页。3 3地址传送指令地址传送指令 80868086指令系统中,有指令系统中,有3 3条专用于传送地址的指令

31、:条专用于传送地址的指令:LEALEA、LDSLDS和和LESLES。(1)(1)取有效地址指令取有效地址指令 格式:格式:LEA REGLEA REG1616,MEMMEM 功能:将源操作数的有效地址送到指定寄存器功能:将源操作数的有效地址送到指定寄存器 中。中。4.2.1 4.2.1 传送指令传送指令 第38页,共134页。(2)(2)将地址指针装入将地址指针装入DSDS和另一个寄存器的指令和另一个寄存器的指令格式:格式:LDS REGLDS REG1616,MEMMEM功能:把源操作数功能:把源操作数SRCSRC的前的前1616位送入目标操作数位送入目标操作数 REGREG,后,后161

32、6位送入位送入DSDS寄存器中。寄存器中。(3)(3)将地址指针装入将地址指针装入ESES和另一个寄存器的指令和另一个寄存器的指令 LES LES REG16,MEM LES LES指令和指令和LDSLDS指令的格式及使用方法是类似的,指令的格式及使用方法是类似的,只是只是LESLES是将一个地址指针装入是将一个地址指针装入ESES和另一个寄存器。和另一个寄存器。第39页,共134页。4 4标志传送指令标志传送指令(1)(1)读取标志指令(读取标志指令(Load AH with FlagsLoad AH with Flags)格式:格式:LAHFLAHF功能:将标志位寄存器中的低功能:将标志位

33、寄存器中的低8 8位传送到位传送到AHAH中中说明:将说明:将SFSF、ZFZF、AFAF、PFPF和和CFCF传送到传送到AHAH寄存器的相寄存器的相应位,即应位,即D7D7、D6D6、D4D4、D2D2和和D0D0位,执行位,执行LAHFLAHF指令指令后,后,AHAH寄存器的寄存器的D5D5、D3D3、D1D1位没有意义,如图所位没有意义,如图所示。示。OF DF IF TF SF ZF AF PF CF OF DF IF TF SF ZF AF PF CF D D7 7 D D6 6 D D4 4 D D2 2 D D0 0FLAGFLAGAHAH4.2.1 4.2.1 传送指令传送指

34、令 第40页,共134页。(2)(2)设置标志指令(设置标志指令(Store AH into FlagsStore AH into Flags)格式:格式:SAHFSAHF功能:将功能:将AHAH寄存器的相应位传送到标志寄存器低寄存器的相应位传送到标志寄存器低8 8位。位。(3)(3)对标志寄存器的推入堆栈指令对标志寄存器的推入堆栈指令格式:格式:PUSHFPUSHF功能:将标志寄存器的值推入堆栈顶部,同时,栈功能:将标志寄存器的值推入堆栈顶部,同时,栈指针指针SPSP的值减的值减2 2,此指令在执行时标志寄存器的,此指令在执行时标志寄存器的值不变。值不变。4.2.1 4.2.1 传送指令传送

35、指令 第41页,共134页。(4)(4)对标志寄存器的弹出堆栈指令对标志寄存器的弹出堆栈指令 格式:格式:POPFPOPF 功能:在执行时从堆栈中弹出一个字送到标志寄存器功能:在执行时从堆栈中弹出一个字送到标志寄存器中,同时堆栈指针中,同时堆栈指针SPSP的值加的值加2 2。PUSHFPUSHF和和POPFPOPF指令一般用在子程序和中断处理指令一般用在子程序和中断处理程序的首尾,起保存主程序标志和恢复主程序程序的首尾,起保存主程序标志和恢复主程序标志的作用。标志的作用。4.2.1 4.2.1 传送指令传送指令 第42页,共134页。总结总结 所有传输类指令,除所有传输类指令,除POPF和和S

36、AHF外,外,均不影响标志寄存器均不影响标志寄存器 所有传输类指令不允许两个操作数均为所有传输类指令不允许两个操作数均为存储器操作数(堆栈指令除外)存储器操作数(堆栈指令除外)要注意段寄存器的搭配使用要注意段寄存器的搭配使用 注意数据类型注意数据类型第43页,共134页。默认的段寄存器搭配默认的段寄存器搭配操作操作 段寄存器段寄存器 段内地址段内地址 段跨越段跨越 示例示例取指令取指令 CS IP 无无源串源串 DS SI CS,ES,SS MOVS DI,CS:SI目标串目标串 ES DI 无无 MOVSW堆栈堆栈 SS SP 无无 POP AX通用数据操作通用数据操作无无BP参与参与 DS

37、 各种有效地址各种有效地址 CS,ES,SS MOV AL,2000H有有BP参与参与 SS 各种有效地址各种有效地址 CS,ES,DS MOV AL,ES:BP第44页,共134页。已知已知(BX)=2000H,(DI)=3000H,(SS)=4000H,(DS)=6000H,(SS)=5000H,66000H单元的内容为单元的内容为28H,则指令,则指令MOV AL,BX+DI+1000H的执行结果是的执行结果是_。指令指令“MOV AX,BX”源操作数的寻址方源操作数的寻址方式为式为_。8086的的I/O指令有指令有_和和_两种寻址方式。两种寻址方式。设当前的设当前的(SP)=0100H

38、,执行,执行PUSH AX指指令后,令后,(SP)=_H第45页,共134页。在寻址方式中,可作基址寄存器的有在寻址方式中,可作基址寄存器的有_、_。若若(DS)=2000H,(ES)=2100H,(CS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据量,数据量COUNT的偏移地址的偏移地址为为0050H,则执行指令,则执行指令LEA AX,BXSI 之后,之后,(AX)=_H,源操作数是,源操作数是_寻址方式。寻址方式。指令指令LEA DX,BUFFER 的功能是将的功能是将_传送给传送给DX。累加器专用传送指令累加器专用传送指令IN间接访问间接访问I/

39、O端口,端口,端口号地址范围为端口号地址范围为_。第46页,共134页。针对源操作数按下列寻址方式各举出一针对源操作数按下列寻址方式各举出一条指令条指令 (1)直接寻址方式直接寻址方式 指令:指令:(2)寄存器间接寻址方式寄存器间接寻址方式 指令:指令:(3)寄存器相对寻址方式寄存器相对寻址方式 指令:指令:(4)基址加变址寻址方式基址加变址寻址方式 指令:指令:(5)寄存器方式寄存器方式 指令:指令:IBM-PC有哪些寄存器可用来指示存储器有哪些寄存器可用来指示存储器偏移地址?偏移地址?第47页,共134页。MOV DS,1000H LEA BX,DATA ;变量名;变量名 ()执行下列指令

40、可以将其执行下列指令可以将其00H送到端口地址为送到端口地址为2F8H的外的外设上:设上:()MOV AL,00H MOV DX,2F8H OUT DX,AL MOV WORD PTR BX,1000H ()IN AL,N;(;(N255)()MOV BXDI,10 ()MOV DS,AX ()MOV CS,AX ()第48页,共134页。执行下列指令可以将执行下列指令可以将00H送到端口地址为送到端口地址为1A0H的外设上。的外设上。MOV AL,00H MOV 1A0H,AL ()MOV BX,1000 ()MOV ES,3F00H ()PUSH AL ()IN AL,DX ()MOV B

41、X,SI ()XCHG CS,AX ()XCHG BX,IP ()PUSH CS ()PUSH SS ()POP ES ()IN BX,DX ()第49页,共134页。算术运算指令共有以下五类:加法运算指令、减法运算术运算指令共有以下五类:加法运算指令、减法运算指令、乘法运算指令、除法运算指令、转换指算指令、乘法运算指令、除法运算指令、转换指令。令。1 1加法指令加法指令 (1)(1)不带进位位的加法指令不带进位位的加法指令格式:格式:ADD DST,SRCADD DST,SRC功能:执行源操作数功能:执行源操作数SRCSRC和目的操作数和目的操作数DSTDST的相加操作,的相加操作,结果放在

42、目的操作数的中。结果放在目的操作数的中。4.2 80864.2 8086指令系统指令系统 4.2.2 4.2.2 算术运算指令算术运算指令 第50页,共134页。(2)(2)带进位位的加法指令带进位位的加法指令格式:格式:ADC DSTADC DST,SRCSRC功能:功能:ADCADC与与ADDADD类似,不同的是将进位标志类似,不同的是将进位标志CFCF 的值加在和中。的值加在和中。ADD ALADD AL,50H 50H ADC AX ADC AX,SI SI(3)(3)增量指令增量指令格式:格式:INC SRCINC SRC功能:将源操作数的内容加功能:将源操作数的内容加1 1,再送回

43、该源操,再送回该源操 作数。作数。4.2.2 4.2.2 算术运算指令算术运算指令 第51页,共134页。2 2减法指令减法指令 (1)(1)不考虑借位的减法指令不考虑借位的减法指令格式:格式:SUB DSTSUB DST,SRCSRC功能:将目的操作数减去源操作数,结果放在目的操功能:将目的操作数减去源操作数,结果放在目的操作数中,主要完成作数中,主要完成2 2个字节或个字节或2 2个字的相减。个字的相减。(2)(2)考虑借位的减法指令考虑借位的减法指令格式:格式:SBB DSTSBB DST,SRCSRC功能:目的操作数减去源操作数的同时,还要功能:目的操作数减去源操作数的同时,还要减去减

44、去CFCF的值。的值。SBB AXSBB AX,2030H 2030H 4.2.2 4.2.2 算术运算指令算术运算指令 第52页,共134页。(3)(3)减量指令减量指令格式:格式:DEC DSTDEC DST功能:使目的操作数减功能:使目的操作数减1 1,再送回到目的操作数,再送回到目的操作数中。中。(4)(4)求补指令求补指令格式:格式:NEG DSTNEG DST功能:对目的操作数求补码,结果送回目的操功能:对目的操作数求补码,结果送回目的操作数中。作数中。4.2.2 4.2.2 算术运算指令算术运算指令 第53页,共134页。(5)(5)比较指令比较指令格式:格式:CMP DSTCM

45、P DST,SRCSRC功能:执行两个数的相减操作,但不送回相减的结果,功能:执行两个数的相减操作,但不送回相减的结果,只是使结果影响标志位只是使结果影响标志位AFAF、CFCF、OFOF、PFPF、SFSF和和ZFZF。对于有符号数的比较,要根据对于有符号数的比较,要根据OFOF和和SFSF两者的关系两者的关系来判断结果。来判断结果。OFOF和和SFSF的值相同,则说明被减数的值相同,则说明被减数比减数大,反之,被减数比减数小。比减数大,反之,被减数比减数小。4.2.2 4.2.2 算术运算指令算术运算指令 第54页,共134页。3 3乘法指令乘法指令 (1)(1)无符号数的乘法指令无符号数

46、的乘法指令格式:格式:MUL SRCMUL SRC功能:将功能:将ALAL(8 8位)或位)或AXAX(1616位)中的数据与源操作数相位)中的数据与源操作数相 乘,结果放在乘,结果放在AXAX或或DXDX与与AXAX两寄存器中。两寄存器中。MUL BL MUL BL ;ALAL中的中的8 8位数和位数和BLBL中的中的8 8位数相乘,位数相乘,结果在结果在AXAX中中 (2)(2)有符号数的乘法指令有符号数的乘法指令格式:格式:IMUL SRCIMUL SRC功能:功能和形式上与功能:功能和形式上与MULMUL很类似,只是要求两个乘数必很类似,只是要求两个乘数必 须均为有符号数。须均为有符号

47、数。IMUL BX IMUL BX ;AXAX和和BXBX中的两个中的两个1616位有符号数相位有符号数相 乘,结果在乘,结果在DXDX和和AXAX中中4.2.2 4.2.2 算术运算指令算术运算指令 第55页,共134页。4 4除法指令除法指令符号数的除法指令符号数的除法指令格式:格式:DIV SRCDIV SRC功能:把功能:把AXAX(或(或DXDX,AXAX)中的被除数除以)中的被除数除以8 8位位 (或(或1616位)源操作数,商数放在位)源操作数,商数放在AL(AL(或或 AX)AX),余数放在,余数放在AH(AH(或或DX)DX)中。中。DIV CL DIV CL;AXAX中的数

48、据除以中的数据除以CLCL中的数中的数 据,商在据,商在ALAL中,余数在中,余数在AHAH中中 4.2.2 4.2.2 算术运算指令算术运算指令 第56页,共134页。(2)(2)有符号数的除法指令有符号数的除法指令格式:格式:IDIV SRCIDIV SRC功能:与功能:与DIVDIV相似,不同的是将除数,被除数,商和余相似,不同的是将除数,被除数,商和余数都看作是带符号数。数都看作是带符号数。IDIV BXIDIV BX;将;将DXDX和和AXAX中的中的3232位数除以位数除以BXBX中的中的1616位数,运算后,商在位数,运算后,商在AXAX中,余数在中,余数在DXDX中中 除法运算

49、时,要求用除法运算时,要求用1616位数除以位数除以8 8位数,或者用位数,或者用3232位数除以位数除以1616位数,当被除数只有位数,当被除数只有8 8位时,必须将此位时,必须将此8 8位数据放在位数据放在ALAL中,并对高中,并对高8 8位位AHAH进行扩展。同样,当进行扩展。同样,当被除数只有被除数只有1616位,而除数也为位,而除数也为1616位时,必须将位时,必须将1616位被位被除数放在除数放在AXAX中,并对高中,并对高1616位位DXDX进行扩展。进行扩展。4.2.2 4.2.2 算术运算指令算术运算指令 第57页,共134页。(3)(3)将字节扩展成字的指令将字节扩展成字的

50、指令格式:格式:CBW CBW 功能:将功能:将ALAL寄存器中的符号位扩展到寄存器中的符号位扩展到AHAH中。即当中。即当ALAL80H80H时,执行时,执行CBWCBW后,后,AH=0AH=0;当;当ALAL80H80H时,执时,执行行CBWCBW后,后,AH=FFHAH=FFH。(4)(4)将字扩展成双字的指令将字扩展成双字的指令格式:格式:CWDCWD功能:用功能:用CWDCWD指令将指令将AXAX中的被除数扩展成双字。中的被除数扩展成双字。4.2.2 4.2.2 算术运算指令算术运算指令 第58页,共134页。5 5BCDBCD码运算指令码运算指令 (1)BCD(1)BCD码加法十进

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(8086指令系统系统课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|