微型计算机原理及其应用第三章80868088的指令系统

上传人:re****.1 文档编号:569932134 上传时间:2024-07-31 格式:PPT 页数:91 大小:1.77MB
返回 下载 相关 举报
微型计算机原理及其应用第三章80868088的指令系统_第1页
第1页 / 共91页
微型计算机原理及其应用第三章80868088的指令系统_第2页
第2页 / 共91页
微型计算机原理及其应用第三章80868088的指令系统_第3页
第3页 / 共91页
微型计算机原理及其应用第三章80868088的指令系统_第4页
第4页 / 共91页
微型计算机原理及其应用第三章80868088的指令系统_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《微型计算机原理及其应用第三章80868088的指令系统》由会员分享,可在线阅读,更多相关《微型计算机原理及其应用第三章80868088的指令系统(91页珍藏版)》请在金锄头文库上搜索。

1、微型计算机原理及其应用第三章80868088的指令系统Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望第三章:第三章:8086/80888086/8088的指令系统的指令系统1.寻址方式寻址方式2.指令系统指令系统2第三章:第三章:8086/80888086/8088的指令系统的指令系统1.寻址方式寻址方式2.指令系统指令系统3第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式什么叫指令?指令系统?寻址方式?什么叫指令?指令系统?寻址方式?指令:

2、计算机提供给用户的硬件命令。指令:计算机提供给用户的硬件命令。指令系统指令系统(集集):指令的集合。:指令的集合。操作码:操作码:指计算机所要执行的操作,即指出操作类型,是一种助记符。指计算机所要执行的操作,即指出操作类型,是一种助记符。操作数:操作数:指在指令执行操作的过程中所需要的操作数。该字段除可以指在指令执行操作的过程中所需要的操作数。该字段除可以是操作数本身外,也可以是操作数地址或是地址的一部分,还可以是是操作数本身外,也可以是操作数地址或是地址的一部分,还可以是指向操作数地址的指针或其它有关操作数的信息。指向操作数地址的指针或其它有关操作数的信息。寻址方式:寻址方式:就是指令中用于

3、说明操作数所在地址的方法,或者说是寻就是指令中用于说明操作数所在地址的方法,或者说是寻找操作数有效地址的方法。找操作数有效地址的方法。指令的一般格式指令的一般格式指令的一般格式指令的一般格式4第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式什么叫指令?指令系统?寻址方式?什么叫指令?指令系统?寻址方式?例如:例如:ADDCL,BH在计算机内部的表示:在计算机内部的表示:00000010110011115第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式8086/8088指令系统中有哪些寻址方式?指令系统中有哪些寻址方

4、式?1.立即寻址方式立即寻址方式(ImmediateAddressing)2.寄存器寻址方式寄存器寻址方式(RegisterAddressing)3.直接寻址方式直接寻址方式(DirectAddressing)4.寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)5.寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)6.基址加变址寻址方式基址加变址寻址方式(BasedIndexedAddressing)7.相对基址加变址寻址方式相对基址加变址寻址方式(RelativeBasedIndexedAddressing

5、)6第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式8086/8088指令系统中有哪些寻址方式?指令系统中有哪些寻址方式?1.立即寻址方式立即寻址方式(ImmediateAddressing)2.寄存器寻址方式寄存器寻址方式(RegisterAddressing)3.直接寻址方式直接寻址方式(DirectAddressing)4.寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)5.寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)6.基址加变址寻址方式基址加变址寻址方式

6、(BasedIndexedAddressing)7.相对基址加变址寻址方式相对基址加变址寻址方式(RelativeBasedIndexedAddressing)7第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式立即寻址方式立即寻址方式(ImmediateAddressing)操作数作为指令的一部分而直接写在指令中,这种操作数称为立操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。即数,这种寻址方式也就称为立即数寻址方式。MOVAX,3412H8第三章:第三章:8086/80888086/8088的指令系统的

7、指令系统寻址方式寻址方式立即寻址方式立即寻址方式(ImmediateAddressing)立即操作数可以是立即操作数可以是8位或位或16位,并且是指令的一部分。立即数据总是位,并且是指令的一部分。立即数据总是紧跟在指令操作码之后并和操作码一起存放在代码段中,因而立即数紧跟在指令操作码之后并和操作码一起存放在代码段中,因而立即数据总是和操作码一起被放入据总是和操作码一起被放入BIU中的指令队列里,在指令执行时不需中的指令队列里,在指令执行时不需再存取存储器。再存取存储器。MOVAH,80HADDAX,1234HMOVECX,123456HMOVB1,12HMOVW1,3456HADDD1,321

8、23456H其中:其中:B1、W1和和D1分别是字节、字和双字单元。分别是字节、字和双字单元。以上指令中的第二操作数都是立即数,在汇编语言中,规定:立即以上指令中的第二操作数都是立即数,在汇编语言中,规定:立即数不能作为指令中的第一操作数。该规定与高级语言中数不能作为指令中的第一操作数。该规定与高级语言中“赋值语句的赋值语句的左边不能是常量左边不能是常量”的规定相一致。的规定相一致。使用立即寻址的指令主要用来给寄存器赋初值。使用立即寻址的指令主要用来给寄存器赋初值。9第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式8086/8088指令系统中有哪些寻址方

9、式?指令系统中有哪些寻址方式?1.立即寻址方式立即寻址方式(ImmediateAddressing)2.寄存器寻址方式寄存器寻址方式(RegisterAddressing)3.直接寻址方式直接寻址方式(DirectAddressing)4.寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)5.寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)6.基址加变址寻址方式基址加变址寻址方式(BasedIndexedAddressing)7.相对基址加变址寻址方式相对基址加变址寻址方式(RelativeBasedInde

10、xedAddressing)10第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式寄存器寻址方式寄存器寻址方式(RegisterAddressing)操操作作数数包包含含在在CPU的的内内部部寄寄存存器器中中,如如寄寄存存器器AX、BX、CX、DX等,指令指定寄存器号。等,指令指定寄存器号。MOVAX,BX11第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式寄存器寻址方式寄存器寻址方式(RegisterAddressing)对于对于16位操作数,寄存器可以是位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,S

11、P或或BP;而对而对8位操作数,寄存器可以是位操作数,寄存器可以是AH,AL,BH,BL,CH,CL,DH或或DL。特点:特点:操作数在操作数在CPU内,不用通过总线读写,速度快;内,不用通过总线读写,速度快;目的和源操作数均可采用此寻址方式。目的和源操作数均可采用此寻址方式。MOVAX,BX;MOVCL,DL;MOVESI,EDI;INCCX;ROLAH,1;12第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式8086/8088指令系统中有哪些寻址方式?指令系统中有哪些寻址方式?1.立即寻址方式立即寻址方式(ImmediateAddressing)2.

12、寄存器寻址方式寄存器寻址方式(RegisterAddressing)3.直接寻址方式直接寻址方式(DirectAddressing)4.寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)5.寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)6.基址加变址寻址方式基址加变址寻址方式(BasedIndexedAddressing)7.相对基址加变址寻址方式相对基址加变址寻址方式(RelativeBasedIndexedAddressing)13第三章:第三章:8086/80888086/8088的指令系统的指令系统

13、寻址方式寻址方式直接寻址方式直接寻址方式(DirectAddressing)操作数的有效地址操作数的有效地址(EffectiveAddress,EA。在。在IBMPC中把操作数中把操作数的偏移地址称为有效地址的偏移地址称为有效地址)是指令的一部分,它与操作码一起存放在是指令的一部分,它与操作码一起存放在代码段中,但操作数一般是在数据段中,因而这种寻址方式是以代码段中,但操作数一般是在数据段中,因而这种寻址方式是以DS的内容为基准。的内容为基准。MOVAL,DS:2000H(MOVAL,2000H)14第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式直接寻

14、址方式直接寻址方式(DirectAddressing)若若DS=4000H,则此指令式将数据段中物理地址为,则此指令式将数据段中物理地址为42000H单元的单元的内容传送内容传送AL寄存器。例:寄存器。例:MOVAL,2000H;DS*10H+2000H送送AL;MOVAX,2000H;DS*10H+2000H送送AL,DS*10H+2000H+1送送AH;MOVAL,ES:2000H;这里这里ES是段超越前缀,所以源操作数是在是段超越前缀,所以源操作数是在ES*10H+2000H的内存单元中。的内存单元中。MOV3000H,AL;目的操作数采用直接寻址,将目的操作数采用直接寻址,将AL送送D

15、S*10H+3000H的内存单元。的内存单元。15第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式8086/8088指令系统中有哪些寻址方式?指令系统中有哪些寻址方式?1.立即寻址方式立即寻址方式(ImmediateAddressing)2.寄存器寻址方式寄存器寻址方式(RegisterAddressing)3.直接寻址方式直接寻址方式(DirectAddressing)4.寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)5.寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressi

16、ng)6.基址加变址寻址方式基址加变址寻址方式(BasedIndexedAddressing)7.相对基址加变址寻址方式相对基址加变址寻址方式(RelativeBasedIndexedAddressing)16第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)操作数的有效地址操作数的有效地址EA存放在基址寄存器存放在基址寄存器(BX或或BP)或变址寄存器或变址寄存器(DI或或SI)中。中。MOVAX,BX17第三章:第三章:8086/80888086/8088的指令

17、系统的指令系统寻址方式寻址方式寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)MOVAL,BX;DS*10H+BX送送AL设设DS=3000H,BX=2000H,(32000H)=45H,则执行该指令后,则执行该指令后,AL=45H。MOVAL,BP;SS*10H+BP送送AL设设DS=2000H,SS=1000H,BP=0100H,(10100H)=3BH,(20100H)=4CH。执行这条指令后,。执行这条指令后,AL=3BH。MOVAX,BX;DS*10H+BX送送AL,DS*10H+BX+1送送AH18第三章:第三章:8086/8088808

18、6/8088的指令系统的指令系统寻址方式寻址方式8086/8088指令系统中有哪些寻址方式?指令系统中有哪些寻址方式?1.立即寻址方式立即寻址方式(ImmediateAddressing)2.寄存器寻址方式寄存器寻址方式(RegisterAddressing)3.直接寻址方式直接寻址方式(DirectAddressing)4.寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)5.寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)6.基址加变址寻址方式基址加变址寻址方式(BasedIndexedAddressin

19、g)7.相对基址加变址寻址方式相对基址加变址寻址方式(RelativeBasedIndexedAddressing)19第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)操作数的有效地址操作数的有效地址EA是是8位或位或16位的位移量与基址寄存器位的位移量与基址寄存器BX或或基址指示器基址指示器BP或某个变址寄存器或某个变址寄存器(DI或或SI)之和。之和。MOVAl,BX+520第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方

20、式寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)MOVAL,5BXMOVAL,BX+5COUNTEQU5MOVAL,COUNTBX以上三个例子是等价的,它执行的操作是:以上三个例子是等价的,它执行的操作是:DS*10H+BX+5送送AL。这里,这里,5称为位移量(称为位移量(displacement),它可以是),它可以是8位或位或16位的二进制位的二进制数。数。21第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式8086/8088指令系统中有哪些寻址方式?指令系统中有哪些寻址方式?1.立即寻址方式立即寻址方

21、式(ImmediateAddressing)2.寄存器寻址方式寄存器寻址方式(RegisterAddressing)3.直接寻址方式直接寻址方式(DirectAddressing)4.寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)5.寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)6.基址加变址寻址方式基址加变址寻址方式(BasedIndexedAddressing)7.相对基址加变址寻址方式相对基址加变址寻址方式(RelativeBasedIndexedAddressing)22第三章:第三章:8086

22、/80888086/8088的指令系统的指令系统寻址方式寻址方式基址加变址寻址方式基址加变址寻址方式(BasedIndexedAddressing)有效地址有效地址EA是由基址寄存器是由基址寄存器BX(或基址指示器或基址指示器BP)的内容与变址的内容与变址寄存器寄存器(DI或或SI)的内容之和。的内容之和。MOVAX,BX+SI23第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式8086/8088指令系统中有哪些寻址方式?指令系统中有哪些寻址方式?1.立即寻址方式立即寻址方式(ImmediateAddressing)2.寄存器寻址方式寄存器寻址方式(Re

23、gisterAddressing)3.直接寻址方式直接寻址方式(DirectAddressing)4.寄存器间接寻址方式寄存器间接寻址方式(RegisterIndirectAddressing)5.寄存器相对寻址方式寄存器相对寻址方式(RegisterRelativeAddressing)6.基址加变址寻址方式基址加变址寻址方式(BasedIndexedAddressing)7.相对基址加变址寻址方式相对基址加变址寻址方式(RelativeBasedIndexedAddressing)24第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式相对基址加变址寻址

24、方式相对基址加变址寻址方式(RelativeBasedIndexedAddressing)操作数操作数EA的有效地址是一个基址寄存器和一个变址寄存器的内容和的有效地址是一个基址寄存器和一个变址寄存器的内容和8位或位或16位位移量之和。位位移量之和。例如:例如:MOVAX,COUNTBXSIMOVAX,COUNTBX+SIMOVAX,BX+SI+COUNT以上三者等价以上三者等价若若(DS)=3000H,(BX)=2000H,(SI)=1000H,COUNT=0250H,则物理地址则物理地址=16d*(DS)+(BX)+(SI)+COUNT=30000+2000+1000+0250=33250H

25、25第三章:第三章:8086/80888086/8088的指令系统的指令系统寻址方式寻址方式段寄存器使用的基本约定段寄存器使用的基本约定26第三章:第三章:8086/80888086/8088的指令系统的指令系统1.寻址方式寻址方式2.指令系统指令系统27第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统8086/8088指令系统可分为以下六个功能组指令系统可分为以下六个功能组1.数据传送数据传送(DataTranster)2.算术运算算术运算(Arithmetic)3.逻辑运算逻辑运算(Logic)4.串操作串操作(StringMenipulation)

26、5.程序控制程序控制(ProgramControl)6.处理器控制处理器控制(ProcessorControl)28第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统8086/8088指令系统可分为以下六个功能组指令系统可分为以下六个功能组1.数据传送数据传送(DataTranster)2.算术运算算术运算(Arithmetic)3.逻辑运算逻辑运算(Logic)4.串操作串操作(StringMenipulation)5.程序控制程序控制(ProgramControl)6.处理器控制处理器控制(ProcessorControl)29第三章:第三章:8086

27、/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令1.通用数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)2.地址传送指令地址传送指令(LEA、LDS、LES)3.标志寄存器传送指令标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)4.累加器专用传送指令累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。30第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传

28、送指令1.通用数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)2.地址传送指令地址传送指令(LEA、LDS、LES)3.标志寄存器传送指令标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)4.累加器专用传送指令累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。31第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令通用数据传送指令通用数据传送指令1.MOV(Move)传送传送格式为:格式为

29、:MOVDST,SRC(DST:目的操作数;:目的操作数;SRC:源操作数:源操作数)执行操作执行操作:(DST)(SRC)其中:其中:DST可以是通用寄存器、段寄存器、存储器操作数;可以是通用寄存器、段寄存器、存储器操作数;SRC可以是可以是通用寄存器、段寄存器、存储器操作数、立即数。通用寄存器、段寄存器、存储器操作数、立即数。32第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令通用数据传送指令通用数据传送指令对于对于MOV指令应注意几个问题:指令应注意几个问题:存储器传送指令中,不允许对存储器传送指令中,不允许对IP进行操作,

30、进行操作,CS不能作为目的操作不能作为目的操作数;数;两个操作数中,除立即寻址之外必须有一个为寄存器寻址方式,即两个操作数中,除立即寻址之外必须有一个为寄存器寻址方式,即两个存储器操作数之间不允许直接进行信息传送;如我们需要把地址两个存储器操作数之间不允许直接进行信息传送;如我们需要把地址(即段内的地址偏移量即段内的地址偏移量)为为AREA1的存储单元的内容,传送至同一段内的存储单元的内容,传送至同一段内的地址为的地址为AREA2的存储单元中去,的存储单元中去,MOV指令不能直接完成这样的传指令不能直接完成这样的传送,但我们可以送,但我们可以CPU内部寄存器为桥梁来完成这样的传送:内部寄存器为

31、桥梁来完成这样的传送:MOVAL,AREA1MOVAREA2,AL两个段寄存器之间不能直接传送信息,也不允许用立即寻址方式为两个段寄存器之间不能直接传送信息,也不允许用立即寻址方式为段寄存器赋初值;如:段寄存器赋初值;如:MOVAX,0MOVDS,AX目的操作数,不能用立即寻址方式。目的操作数,不能用立即寻址方式。33第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令通用数据传送指令通用数据传送指令2.PUSH(Pushontothestack)进栈指令进栈指令格式为:格式为:PUSHSRC执行操作执行操作:(SP)(SP)-2(S

32、P)+1,(SP)(SRC)功能:将数据压入堆栈功能:将数据压入堆栈注意:源操作数可以是注意:源操作数可以是CPU内部的内部的16位通用寄存器、段寄存器位通用寄存器、段寄存器(CS除除外外)和内存操作数和内存操作数(所有寻址方式所有寻址方式)。入栈操作对象必须是入栈操作对象必须是16位数,不能位数,不能是是8位数。位数。例如:例如:MOVAX,0543HPUSHAX34第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令通用数据传送指令通用数据传送指令3.POP(Popfromthestack)出栈指令出栈指令格式为:格式为:POPD

33、ST执行操作执行操作:(DST)(SP)+1,(SP)(SP)(SP)+2功能:将数据弹出堆栈功能:将数据弹出堆栈注意:对指令执行的要求同入栈指令。注意:对指令执行的要求同入栈指令。例如:例如:POPDXPOPBXPOPDS35第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令通用数据传送指令通用数据传送指令4.XCHG(Exchange)交换指令交换指令格式为:格式为:XCHGOPR1,OPR2执行操作执行操作:(OPR1)(OPR2)功能:完成数据交换功能:完成数据交换注意:注意:交换指令可把一个字节或交换指令可把一个字节或一个

34、字的源操作数与目的操作数一个字的源操作数与目的操作数相交换。交换能在通用寄存器之间、相交换。交换能在通用寄存器之间、通用寄存器与存储器之间进行。通用寄存器与存储器之间进行。但段寄存器和立即数不能作为一个但段寄存器和立即数不能作为一个操作数。操作数。例如:例如:XCHGAL,CLXCHGAX,DIXCHGBX,SIXCHGAX,BUFFERXCHGDATASI,DHXCHGAX,BX;AXBX36第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令1.通用数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)2.地址传送指令

35、地址传送指令(LEA、LDS、LES)3.标志寄存器传送指令标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)4.累加器专用传送指令累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。37第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令地址传送指令地址传送指令1.LEA(LoadEffectiveAddress)有效地址传送指令有效地址传送指令格式为:格式为:LEAOPRD1,OPRD2功能:把源操作数功

36、能:把源操作数OPRD2的地址的地址偏移量传送至目的操作数偏移量传送至目的操作数OPRD1。注意:注意:源操作数必须是一个内存源操作数必须是一个内存操作数操作数目的操作数必须是一个目的操作数必须是一个16位的通用寄存器。这条指令通常用位的通用寄存器。这条指令通常用来建立串操作指令所须的寄存器指来建立串操作指令所须的寄存器指针。针。例如:例如:LEABX,DI38第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令地址传送指令地址传送指令2.LDS(LoadPointerIntoDS)取地址指针指令取地址指针指令格式为:格式为:LDSO

37、PRD1,OPRD2功能:完成一个地址指针的传送。功能:完成一个地址指针的传送。地址指针包括段地址部分和偏移地址指针包括段地址部分和偏移量部分。指令将段地址送入量部分。指令将段地址送入DS,偏移量部分送入一个偏移量部分送入一个16位的指针寄位的指针寄存器或变址寄存器。存器或变址寄存器。注意:源操作数是一个内存操作注意:源操作数是一个内存操作数,目的操作数是一个通用寄存数,目的操作数是一个通用寄存器器/变址寄存器。变址寄存器。例如:例如:LDSBX,TABLESI39第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令地址传送指令地址传

38、送指令3.LES(LoadPointerIntoES)取地址指针指令取地址指针指令格式为:格式为:LESOPRD1,OPRD2功能:这条指令除将地址指针的段地址部分送入功能:这条指令除将地址指针的段地址部分送入ES外,与外,与LDS类似。类似。例如:例如:LESBX,TABLESI40第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令1.通用数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)2.地址传送指令地址传送指令(LEA、LDS、LES)3.标志寄存器传送指令标志寄存器传送指令(LAHF、SAHF、PUSHF、

39、POPF)4.累加器专用传送指令累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。41第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令标志寄存器传送指令标志寄存器传送指令1.LAHF(LOADAHWITHFLAG)功能:将标志寄存器中的功能:将标志寄存器中的SF、ZF、AF、PF和和CF(即低即低8位位)传送至传送至AH寄存器,空位没有定义。寄存器,空位没有定义。2.SAHF(STOREAHWITHFLAG)功能:

40、将寄存器功能:将寄存器AH的指定位,送至标志寄存器的的指定位,送至标志寄存器的SF、ZF、AF、PF和和CF位位(即低即低8位位)。根据。根据AH的内容,影响上述标志位,对的内容,影响上述标志位,对OF、DF和和IF无影响。无影响。3.PUSHF(PUSHFLAG)功能:将标志寄存器压入堆栈顶部,同时修改堆栈指针,不影响标志功能:将标志寄存器压入堆栈顶部,同时修改堆栈指针,不影响标志位。位。4.POPF(POPFLAG)功能:堆栈顶部的一个字,传送到标志寄存器,同时修改堆栈指针,功能:堆栈顶部的一个字,传送到标志寄存器,同时修改堆栈指针,影响标志位。影响标志位。42第三章:第三章:8086/8

41、0888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令1.通用数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)2.地址传送指令地址传送指令(LEA、LDS、LES)3.标志寄存器传送指令标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)4.累加器专用传送指令累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。43第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指

42、令累加器专用传送指令累加器专用传送指令这组指令只使用这组指令只使用AX或或AL传送信息传送信息IN(Input)输入指令输入指令一般格式一般格式 INAL,n;BALnINAX,n;WAXn+1nINAL,DX;BALDXINAX,DX;WAXDX+1DX功能:从功能:从I/O端口输入数据至端口输入数据至AL或或AX。注意:输入指令允许把一个字节或一个字由一个输入端口传送到注意:输入指令允许把一个字节或一个字由一个输入端口传送到AL或或AX中。若端口地址超过中。若端口地址超过255时,则必须用时,则必须用DX保存端口地址,这样保存端口地址,这样用用DX作端口寻址最多可寻找作端口寻址最多可寻找6

43、4K个端口。个端口。44第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令累加器专用传送指令累加器专用传送指令OUT(Output)输入指令输入指令一般格式一般格式 OUTn,AL;BALnOUTn,AX;WAXn+1nOUTDX,AL;BALDXOUTDX,AX;WAXDX+1DX功能:将功能:将AL或或AX的内容输出至的内容输出至I/O端口。端口。注意:注意:该指令将该指令将AL或或AX中的内容传送到一个输出端口。端口寻址方中的内容传送到一个输出端口。端口寻址方式与式与IN指令相同。指令相同。45第三章:第三章:8086/808

44、88086/8088的指令系统的指令系统指令系统指令系统数据传送指令数据传送指令累加器专用传送指令累加器专用传送指令XLAT(Translate)换码换码(查表查表)指令指令一般格式一般格式 XLAT;AL=(DS)16(BX)+(AL)功能:完成一个字节的查表转换。功能:完成一个字节的查表转换。注意:注意:寄存器寄存器AL的内容作为一个的内容作为一个256字节的表的下标;字节的表的下标;表的基地址在表的基地址在BX中;中;转换后的结果存放在转换后的结果存放在AL中。中。46第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统8086/8088指令系统可分为

45、以下六个功能组指令系统可分为以下六个功能组1.数据传送数据传送(DataTranster)2.算术运算算术运算(Arithmetic)3.逻辑运算逻辑运算(Logic)4.串操作串操作(StringMenipulation)5.程序控制程序控制(ProgramControl)6.处理器控制处理器控制(ProcessorControl)47第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令1.加法指令加法指令(ADD、ADC、INC)2.减法指令减法指令(SUB、SBB、DEC、NEG、CMP)3.乘法指令乘法指令(MUL、IMUL)

46、4.除法指令除法指令(DIV、IDIV、CBW、CWD)5.十进制调整指令十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时补码表示。同时8086也提供了各种校正操作,故可以进行十进制算也提供了各种校正操作,故可以进行十进制算术运算。术运算。48第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算

47、术运算指令算术运算指令1.加法指令加法指令(ADD、ADC、INC)2.减法指令减法指令(SUB、SBB、DEC、NEG、CMP)3.乘法指令乘法指令(MUL、IMUL)4.除法指令除法指令(DIV、IDIV、CBW、CWD)5.十进制调整指令十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时补码表示。同时8086也提供了各种校正操作

48、,故可以进行十进制算也提供了各种校正操作,故可以进行十进制算术运算。术运算。49第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令加法指令加法指令ADD(add)加法指令加法指令一般格式一般格式ADDDST,SRC;(DST)(SRC)+(DST)功能:完成两个操作数相加,结果送至目的操作数功能:完成两个操作数相加,结果送至目的操作数DST。目的操作数。目的操作数可以是累加器,任一通用寄存器以及存储器操作数。可以是累加器,任一通用寄存器以及存储器操作数。ADC(addwithcarry)带进位的加法指令带进位的加法指令一般格式一般格

49、式ADCDST,SRC;(DST)(SRC)+(DST)+CF功能:这条指令与上功能:这条指令与上条指令类似,只是在两个操作数相加时,要把条指令类似,只是在两个操作数相加时,要把进位标志进位标志CF的现行值加上去,结果送至目的操作数。本指令主要用的现行值加上去,结果送至目的操作数。本指令主要用于多字节操作数相加。于多字节操作数相加。INC(increment)加一指令加一指令一般格式一般格式INCOPR;(OPR)(OPR)+1功能:完成对指定的操作数功能:完成对指定的操作数OPR加加1,然后返回此操作数。此指令主,然后返回此操作数。此指令主要用于在循环程序中修改地址指针和循环次数等。要用于在

50、循环程序中修改地址指针和循环次数等。50第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令加法指令加法指令ADDAL,30;累加器与立即数相加累加器与立即数相加ADDBX,3000H;通用寄存器与存储单元内容相加通用寄存器与存储单元内容相加ADDDI,CX;通用寄存器之间通用寄存器之间ADDDX,DATABX+SI;通用寄存器与存储单元内容相加通用寄存器与存储单元内容相加ADDBETASI,DX;存储器操作数与寄存器相加存储器操作数与寄存器相加51第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系

51、统算术运算指令算术运算指令加法指令加法指令MOVAX,FIRSTADDAX,SECOND;进行字运算进行字运算MOVTHIRD,AXMOVAX,FIRST+2ADCAX,SECOND+2MOVTHIRD+2,AX52第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令1.加法指令加法指令(ADD、ADC、INC)2.减法指令减法指令(SUB、SBB、DEC、NEG、CMP)3.乘法指令乘法指令(MUL、IMUL)4.除法指令除法指令(DIV、IDIV、CBW、CWD)5.十进制调整指令十进制调整指令(DAA、DAS、AAA、AAS、A

52、AM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时补码表示。同时8086也提供了各种校正操作,故可以进行十进制算也提供了各种校正操作,故可以进行十进制算术运算。术运算。53第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令减法指令减法指令SUB(subtract)减法指令减法指令一般格式一般格式SUBDST,SRC;(DS

53、T)(DST)-(SRC)功能:完成两个操作数相减,也即从功能:完成两个操作数相减,也即从DST中减去中减去SRC,结果放在,结果放在SRC中。中。SBB(subtractwithborrow)带借位的减法指令带借位的减法指令一般格式一般格式SBBDST,SRC;(DST)(DST)-(SRC)-CF功能:这条指令与功能:这条指令与SUB类似,只是在两个操作数相减时,还要减去借类似,只是在两个操作数相减时,还要减去借位标志位标志CF的现行值。本指令对标志位的现行值。本指令对标志位AF、CF、OF、PF、SF和和ZF都都有影响。本指令主要用于多字节操作数相减。有影响。本指令主要用于多字节操作数相

54、减。DEC(decrement)减一指令减一指令一般格式一般格式DECOPR;(OPR)(OPR)-1功能:完成对指定的操作数功能:完成对指定的操作数OPR减减1,然后返回此操作数。,然后返回此操作数。54第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令减法指令减法指令NEG(negate)求补指令求补指令一般格式一般格式NEGOPR;(OPR)(OPR)功能:对操作数取补,即用零减去操作数,再把结果送回操作数。功能:对操作数取补,即用零减去操作数,再把结果送回操作数。CMP(compare)比较指令比较指令一般格式一般格式CMP

55、OPR1,OPR2;(OPR1)-(OPR2)功能:比较指令完成两个操作数相减,使结果反映在标志位上,但并功能:比较指令完成两个操作数相减,使结果反映在标志位上,但并不送回结果不送回结果(即不带回送的减法即不带回送的减法)。55第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令减法指令减法指令SUBCX,BXSUBBP,CLDECSIDEC CLNEGALNEG MULRECMPAL,100CMPDX,DICMPCX,COUHTBPCMPCOUNTSI,AX56第三章:第三章:8086/80888086/8088的指令系统的指令系统

56、指令系统指令系统算术运算指令算术运算指令1.加法指令加法指令(ADD、ADC、INC)2.减法指令减法指令(SUB、SBB、DEC、NEG、CMP)3.乘法指令乘法指令(MUL、IMUL)4.除法指令除法指令(DIV、IDIV、CBW、CWD)5.十进制调整指令十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时补码表示。同时8086也

57、提供了各种校正操作,故可以进行十进制算也提供了各种校正操作,故可以进行十进制算术运算。术运算。57第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令乘法指令乘法指令MUL(unsignedmultiple)无符号数乘法指令无符号数乘法指令一般格式一般格式MULSRC字节操作数字节操作数(AX)(AL)*SRC字操作数字操作数(DX,AX)(AX)*SRC功能:完成字节与字节相乘、字与字相乘,且默认的操作数放在功能:完成字节与字节相乘、字与字相乘,且默认的操作数放在AL或或AX中,而源操作数由指令给出。中,而源操作数由指令给出。8位数

58、相乘,结果为位数相乘,结果为16位数,放在位数,放在AX中;中;16位数相乘结果为位数相乘结果为32位数,高位数,高16位放在位放在DX,低,低16位放在位放在AX中。此时,若中。此时,若AH/DX=0,则,则CF=OF=0,否则,否则CF=OF=1。IMUL(signedmultiple)带符号数乘法指令带符号数乘法指令一般格式一般格式IMULSRC功能:这是一条带符号数的乘法指令,同功能:这是一条带符号数的乘法指令,同MUL一样可以进行字节与字一样可以进行字节与字节、字和字的乘法运算。结果放在节、字和字的乘法运算。结果放在AX或或DX,AX中。当结果的高半部中。当结果的高半部分不是结果的低

59、半部分的符号扩展时,标志位分不是结果的低半部分的符号扩展时,标志位CF=OF=0,否则,否则CF=OF=1。58第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令乘法指令乘法指令MOVAL,FIRSTMULSECOND;结果为结果为AX=FIRST*SECONDMOV AX,THIRDMUL AX;结果结果DX:AX=THIRD*THIRDMOV BX,2000HMUL BX59第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令乘法指令乘法指令例:若例:若(AL)=0B4

60、H,(BL)=11H,求执行指令,求执行指令IMULBL和和MULBL后的结后的结果。果。解:解:(AL)=0B4H=180D(无符号数无符号数)=-76D(带符号数带符号数),(BL)=11H=17D(无符号数无符号数)=17D(带符号数带符号数),执行执行IMULBL的结果为的结果为(AX)=0FAF4H=-1292DCF=OF=1执行执行MULBL的结果为的结果为(AX)=0BF4H=3060DCF=OF=160第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令1.加法指令加法指令(ADD、ADC、INC)2.减法指令减法指令

61、(SUB、SBB、DEC、NEG、CMP)3.乘法指令乘法指令(MUL、IMUL)4.除法指令除法指令(DIV、IDIV、CBW、CWD)5.十进制调整指令十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时补码表示。同时8086也提供了各种校正操作,故可以进行十进制算也提供了各种校正操作,故可以进行十进制算术运算。术运算。61第三章:

62、第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令除法指令除法指令DIV(unsigneddivide)无符号数除法指令无符号数除法指令一般格式一般格式DIVSRC字节操作数字节操作数(AL)(AX)/SRC的商的商(AH)(AX)/SRC的余数的余数字操作数字操作数(AX)(DX,AX)/SRC的商的商(DX)(DX,AX)/SRC的余数的余数IDIV(signeddivide)带符号数除法指令带符号数除法指令一般格式一般格式IDIVSRC功能:该指令执行过程同功能:该指令执行过程同DIV指令,但指令,但IDIV指令认为操作数的最高位为符

63、号指令认为操作数的最高位为符号位,除法运算的结果商的最高位也为符号位。在除法指令中,在字节运算时位,除法运算的结果商的最高位也为符号位。在除法指令中,在字节运算时被除数在被除数在AX中;运算结果商在中;运算结果商在AL中,余数在中,余数在AH中。字运算时被除数为中。字运算时被除数为DX:AX构成的构成的32位数,运算结果商在位数,运算结果商在AX中,余数在中,余数在DX中。中。CBW(convertbytetoword)字节转换为字指令字节转换为字指令功能:将功能:将AL的内容符号扩展到的内容符号扩展到AH。若。若(AL)最高有效位为最高有效位为0,即若即若(AL)的的D7=0,则则(AH)=

64、00;若;若(AL)最高有效位为最高有效位为1,则,则(AH)=0FFH。CWD(convertwordtodoubleword)字转换为双字指令字转换为双字指令功能:将功能:将AX的内容符号扩展到的内容符号扩展到DX。若。若(AX)最高有效位为最高有效位为0,即若即若(AX)的的D15=0,则则(DX)=00;若;若(AX)最高有效位为最高有效位为1,则,则(DX)=0FFH。62第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令除法指令除法指令若若AX=2000H,DX=0200H,BX=1000H,则,则DIVBX执行后,执行

65、后,AX=2002H,DX=0000。63第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令1.加法指令加法指令(ADD、ADC、INC)2.减法指令减法指令(SUB、SBB、DEC、NEG、CMP)3.乘法指令乘法指令(MUL、IMUL)4.除法指令除法指令(DIV、IDIV、CBW、CWD)5.十进制调整指令十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的

66、运算。带符号数用节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时补码表示。同时8086也提供了各种校正操作,故可以进行十进制算也提供了各种校正操作,故可以进行十进制算术运算。术运算。64第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令十进制调整指令十进制调整指令计算机中的算术运算,都是针对二进制数的运算,而人们在日常生活中习惯计算机中的算术运算,都是针对二进制数的运算,而人们在日常生活中习惯使用十进制。为此在使用十进制。为此在8086/8088系统中,针对十进制算术运算有一类十进制调整指系统中,针对十进制

67、算术运算有一类十进制调整指令。令。在计算机中人们用在计算机中人们用BCD码表示十进制数,对码表示十进制数,对BCD码计算机中有两种表示方法:码计算机中有两种表示方法:一类为压缩一类为压缩BCD码,即规定每个字节表示两位码,即规定每个字节表示两位BCD数;另一类称为非压缩数;另一类称为非压缩BCD码,码,即用一个字节表示一位即用一个字节表示一位BCD数,在这字节的高四位用数,在这字节的高四位用0填充。例如,十进制数填充。例如,十进制数25D,表示为压缩,表示为压缩BCD数时为:数时为:25H;表示为非压缩;表示为非压缩BCD数时为:数时为:0205H,用两字节,用两字节表示。表示。十进制调整指令

68、指令格式指令说明DAA压缩的BCD码加法调整DAS压缩的BCD码减法调整AAA非压缩的BCD码加法调整AAS非压缩的BCD码减法调整AAM乘法后的BCD码调整AAD除法前的BCD码调整65第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统算术运算指令算术运算指令十进制调整指令十进制调整指令【例如例如】ADDAL,BLDAA若执行前:若执行前:AL=28H,BL=68H,则执行,则执行ADD后:后:AL=90H,AF=1;再执行;再执行DAA指令后,正确的结果为:指令后,正确的结果为:AL=96H,CF=0,AF=1。【例如例如】MULBLAAM若执行前:若

69、执行前:AL=07,BL=09,则执行,则执行MULBL后,后,AX=003FH,再执行,再执行AAM指令指令后,正确的结果为:后,正确的结果为:AH=06H,AL=03H。66第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统8086/8088指令系统可分为以下六个功能组指令系统可分为以下六个功能组1.数据传送数据传送(DataTranster)2.算术运算算术运算(Arithmetic)3.逻辑运算逻辑运算(Logic)4.串操作串操作(StringMenipulation)5.程序控制程序控制(ProgramControl)6.处理器控制处理器控制(

70、ProcessorControl)67第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统逻辑运算指令逻辑运算指令1.逻辑运算指令逻辑运算指令(ADD、OR、NOT、XOR、TEST)2.移位指令移位指令(SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR)68第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统逻辑运算指令逻辑运算指令1.逻辑运算指令逻辑运算指令(ADD、OR、NOT、XOR、TEST)2.移位指令移位指令(SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR)69第三章:第三章:8

71、086/80888086/8088的指令系统的指令系统指令系统指令系统逻辑运算指令逻辑运算指令逻辑运算指令逻辑运算指令AND(and)逻辑与指令逻辑与指令一般格式一般格式ANDDST,SRC;(DST)(DST) (SRC)OR(or)逻辑或指令逻辑或指令一般格式一般格式ORDST,SRC;(DST)(DST) (SRC)NOT(not)逻辑非指令逻辑非指令一般格式一般格式NOTOPR;(DST)(DST)XOR(exclusiveor)逻辑异或指令逻辑异或指令一般格式一般格式XORDST,SRC;(DST)(DST) (SRC)TEST(test)测试指令测试指令一般格式一般格式TESTOP

72、R1,OPR2;(OPR1) (OPR2)70第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统逻辑运算指令逻辑运算指令逻辑运算指令逻辑运算指令例如:要求屏蔽例如:要求屏蔽0、1位,可用位,可用AND指令并设置常数指令并设置常数0FCH。MOVAL,0BFHANDAL,0FCH例如:要测试操作数的某位是否为例如:要测试操作数的某位是否为0,可用,可用TEST指令,同样把指令,同样把TEST指令的源操作数设置成为一个立即数,其中需要测试的位应设为指令的源操作数设置成为一个立即数,其中需要测试的位应设为1。MOVAL,40HTESTAL,0AFH71第三章:第

73、三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统逻辑运算指令逻辑运算指令1.逻辑运算指令逻辑运算指令(ADD、OR、NOT、XOR、TEST)2.移位指令移位指令(SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR)72第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统逻辑运算指令逻辑运算指令移位指令移位指令SHL(shiftlogicalleft)逻辑左移指令逻辑左移指令一般格式一般格式SHLOPR,CNTSAL(shiftarithmeticleft)算术左移指令算术左移指令一般格式一般格式SALOPR,CNT

74、SHR(shiftlogicalright)逻辑右移指令逻辑右移指令一般格式一般格式SHROPR,CNTSAR(shiftarithmeticright)算术右移指令算术右移指令一般格式一般格式SAROPR,CNTROL(rotateleft)循环左移指令循环左移指令一般格式一般格式ROLOPR,CNTROR(rotateright)循环右移指令循环右移指令一般格式一般格式ROROPR,CNTRCL(rotateleftthroughcarry)带进位循环左移指令带进位循环左移指令一般格式一般格式RCLOPR,CNTRCR(rotaterightthroughcarry)带进位循环右移指令带进

75、位循环右移指令一般格式一般格式RCROPR,CNT73第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统8086/8088指令系统可分为以下六个功能组指令系统可分为以下六个功能组1.数据传送数据传送(DataTranster)2.算术运算算术运算(Arithmetic)3.逻辑运算逻辑运算(Logic)4.串操作串操作(StringMenipulation)5.程序控制程序控制(ProgramControl)6.处理器控制处理器控制(ProcessorControl)74第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系

76、统串操作指令串操作指令串操作类指令可以用来实现内存区域的数据串操作。这些数据串可以是字节串操作类指令可以用来实现内存区域的数据串操作。这些数据串可以是字节串,也可以是字串。串,也可以是字串。功能指令格式执行操作串传送MOVS DST,SRCMOVSBMOVSW由操作数说明是字节或字操作;其余同MOVSB或MOVSW(ES:DI)(DS:SI);SI=SI1,DI=DI1; (ES:DI)(DS:SI);SI=SI2,DI=DI2;串比较CMPS DST,SRCCMPSBCMPSW由操作数说明是字节或字操作;其余同CMPSB或CMPSW(ES:DI)(DS:SI);SI=SI1,DI=DI1;

77、(ES:DI)(DS:SI);SI=SI2,DI=DI2;串搜索SCAS DSTSCASBSCASW由操作数说明是字节或字操作;其余同SCASB或SCASWAL(ES:DI);DI=DI1;重复前缀控制前两步AX(ES:DI);DI=DI2;重复前缀控制前两步存串STOS DSTSTOSBSTOSW由操作数说明是字节或字操作;其余同STOSB或STOSWAL(ES:DI);DI=DI1;重复前缀控制前两步AX(ES:DI);DI=DI2;重复前缀控制前两步取串LODS SRCLODSBLODSW由操作数说明是字节或字操作;其余同LODSB或LODSW(DS:SI)AL;SI=SI1;重复前缀控

78、制前两步(DS:SI)AX;SI=SI2;重复前缀控制前两步75第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统8086/8088指令系统可分为以下六个功能组指令系统可分为以下六个功能组1.数据传送数据传送(DataTranster)2.算术运算算术运算(Arithmetic)3.逻辑运算逻辑运算(Logic)4.串操作串操作(StringMenipulation)5.程序控制程序控制(ProgramControl)6.处理器控制处理器控制(ProcessorControl)76第三章:第三章:8086/80888086/8088的指令系统的指令系统指令

79、系统指令系统程序控制指令程序控制指令1.无条件转移指令无条件转移指令(JMP)2.条件转移指令条件转移指令(JZ/JE、JNZ、JS、JNS、JO、JNO、JP、JNP、JB、JNB)3.循环指令循环指令(LOOP、LOOPZ、LOOPNZ)4.子程序子程序(CALL、RET)5.中断中断(INT、INTO、IRET)77第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令1.无条件转移指令无条件转移指令(JMP)2.条件转移指令条件转移指令(JZ/JE、JNZ、JS、JNS、JO、JNO、JP、JNP、JB、JNB)3.循环指令循环

80、指令(LOOP、LOOPZ、LOOPNZ)4.子程序子程序(CALL、RET)5.中断中断(INT、INTO、IRET)78第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令无条件转移指令无条件转移指令无条件转移指令无条件转移指令JMP分段内转移和段间转移两种。分段内转移和段间转移两种。一般格式:一般格式:JMPOPR;OPR是转移的目的地址是转移的目的地址段内转移的段内转移的3种形式为:种形式为:短程转移短程转移JMPSHORTOPR;IP=IP+8位位移量位位移量目的地址与目的地址与JMP指令所处地址的距离应在指令所处地址的距离

81、应在-128127范围之内。范围之内。近程转移近程转移JMPNEARPTROPR;IP=IP+16位位移量位位移量或或JMPOPRD;NEAR可省略可省略目的地址与目的地址与JMP指令应处于同一地址段范围之内。指令应处于同一地址段范围之内。段内间接转移段内间接转移JMPWORDPTROPR;IP=EA(由由OPR的寻址方的寻址方式确定式确定)。JMPWORDPTRBXIP=(DS)*16+(BX)JMPWORDPTRBXIP=(BX)79第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令无条件转移指令无条件转移指令段间转移指令的目的

82、地址可以由存储器或寄存器给出。段间转移指令的目的地址可以由存储器或寄存器给出。远程转移远程转移JMPFARPTROPR;IP=OPR的段内位移量,的段内位移量,CS=OPR所在段地址。所在段地址。远程转移是段间的转移,目的地址与远程转移是段间的转移,目的地址与JMP指令所在地址不在同一段内。指令所在地址不在同一段内。执行该指令时要修改执行该指令时要修改CS和和IP的内容。的内容。段间间接转移段间间接转移JMPDWORDPTROPRD;IP=EA,CS=EA+2该指令指定的双字节指针的第一个字单元内容送该指令指定的双字节指针的第一个字单元内容送IP,第二个字单元内,第二个字单元内容送容送CS。J

83、MPDWORDPTRBX+SI80第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令1.无条件转移指令无条件转移指令(JMP)2.条件转移指令条件转移指令(JZ/JE、JNZ、JS、JNS、JO、JNO、JP、JNP、JB、JNB)3.循环指令循环指令(LOOP、LOOPZ、LOOPNZ)4.子程序子程序(CALL、RET)5.中断中断(INT、INTO、IRET)81第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令条件转移指令条件转移指令8086有有18条不同的条件转

84、移指令。它们根据标志寄存器中各标志位的状态,条不同的条件转移指令。它们根据标志寄存器中各标志位的状态,决定程序是否进行转移。条件转移指令的目的地址必须在现行的代码段决定程序是否进行转移。条件转移指令的目的地址必须在现行的代码段(CS)内,内,并且以当前指针寄存器并且以当前指针寄存器IP内容为基准,其位移必须在内容为基准,其位移必须在+127-128的范围之内。的范围之内。82汇编格式 操 作 标志位转移指令JZ/JE/JNZ/JNE OPR结果为零/结果不为零转移JS/JNS OPR结果为负数/结果为正数转移JP/JPE/JNP/JPO OPR结果奇偶校验为偶/结果奇偶校验为奇转移JO/JNO

85、 OPR结果溢出/结果不溢出转移JC/JNC OPR结果有进位(借位)/结果无进位(借位)转移不带符号数比较转移指令JA/JNBE OPR高于或不低于等于转移JAE/JNA OPR高于等于或不低于转移JB/JNAE OPR小于或不大于等于转移JBE/JNA OPR小于等于或不大于转移带符号数比较转移指令JG/JNLE OPR高于或不低于等于转移JGE/JNL OPR高于等于或不低于转移JL/JNGE OPR小于或不大于等于转移JLE/JNG OPR小于等于或不大于转移测试转移指令JCXZ OPR CX=0 时转移83第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系

86、统指令系统程序控制指令程序控制指令1.无条件转移指令无条件转移指令(JMP)2.条件转移指令条件转移指令(JZ/JE、JNZ、JS、JNS、JO、JNO、JP、JNP、JB、JNB)3.循环指令循环指令(LOOP、LOOPZ、LOOPNZ)4.子程序子程序(CALL、RET)5.中断中断(INT、INTO、IRET)84第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令循环指令循环指令对于需要重复进行的操作,微机系统可用循环程序结构来进行,对于需要重复进行的操作,微机系统可用循环程序结构来进行,8086/8088系统为了简化程序设计

87、,设置了一组循环指令,这组指令主要对系统为了简化程序设计,设置了一组循环指令,这组指令主要对CX或标志位或标志位ZF进行测试,确定是否循环。进行测试,确定是否循环。LOOP(LOOP)循环循环LOOPZ/LOOPE(Loopwhilezero,orequal)当为零或相等时循环当为零或相等时循环LOONZ/LOOPNE(Loopwhilenonzero,ornotequal)当不为零或不相等时循环当不为零或不相等时循环指令格式执行操作LOOP OPRCX=CX-1;若CX0,则循环LOOPNZ/LOOPNE OPRCX=CX-1,若CX0 且ZF=0,则循环LOOPZ/LOOPE OPRCX=

88、CX-1,若CX0 且ZF=1,则循环85第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令1.无条件转移指令无条件转移指令(JMP)2.条件转移指令条件转移指令(JZ/JE、JNZ、JS、JNS、JO、JNO、JP、JNP、JB、JNB)3.循环指令循环指令(LOOP、LOOPZ、LOOPNZ)4.子程序子程序(CALL、RET)5.中断中断(INT、INTO、IRET)86第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令子程序指令子程序指令CALL指令用来调用一个过

89、程或子程序。由于过程或子程序有段间指令用来调用一个过程或子程序。由于过程或子程序有段间(即远程即远程FAR)和段内调用和段内调用(即近程即近程NEAR)之分。所以之分。所以CALL也有也有FAR和和NEAR之分。因此之分。因此RET也分段间与段内返回两种。也分段间与段内返回两种。调用指令一般格式为:调用指令一般格式为:段内调用段内调用CALLNEARPTROPR;操操作作SP=SP-2,(SP)+1),(SP)=IP,IP=IP+16位位移量位位移量CALL指令首先将当前指令首先将当前IP内容压入堆栈。当执行内容压入堆栈。当执行RET指令而返回时,从堆栈中取指令而返回时,从堆栈中取出一个字放入

90、出一个字放入IP中。中。段间调用段间调用CALLFARPTROPR;操操作作SP=SP-2,(SP)+1),(SP)=CS;SP=SP-2,(SP)+1),(SP)=IP;IP=EA;CS=EA+287第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令1.无条件转移指令无条件转移指令(JMP)2.条件转移指令条件转移指令(JZ/JE、JNZ、JS、JNS、JO、JNO、JP、JNP、JB、JNB)3.循环指令循环指令(LOOP、LOOPZ、LOOPNZ)4.子程序子程序(CALL、RET)5.中断中断(INT、INTO、IRET)8

91、8第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统8086/8088指令系统可分为以下六个功能组指令系统可分为以下六个功能组1.数据传送数据传送(DataTranster)2.算术运算算术运算(Arithmetic)3.逻辑运算逻辑运算(Logic)4.串操作串操作(StringMenipulation)5.程序控制程序控制(ProgramControl)6.处理器控制处理器控制(ProcessorControl)89第三章:第三章:8086/80888086/8088的指令系统的指令系统指令系统指令系统程序控制指令程序控制指令处理器控制指令处理器控制指

92、令处理器控制指令用来控制标志,主要有处理器控制指令用来控制标志,主要有CF、DF和和IF三个。处理器控制指令用以三个。处理器控制指令用以控制处理器的工作状态,均不影响标志位控制处理器的工作状态,均不影响标志位汇编语言格式 执行操作标志类指令CLC清进位标志,CF=0STC置进位标志,CF=1CMC进位标志取反CLD清方向标志,DF=0STD置方向标志,DF=1CLI关中断标志,IF=0,不允许中断STI开中断标志,IF=1,允许中断CPU控制类指令HLT使处理器处于停止状态,不执行指令WAIT使处理器处于等待状态,TEST线为低时,退出等待ESC使协处理器从系统指令流中取得指令LOCK封锁总线指令,可放在任一条指令前作为前缀NOP空操作指令,常用于程序的延时和调试90第三章:第三章:8086/80888086/8088的指令系统的指令系统总结总结8086微处理器指令系统,要求达到微处理器指令系统,要求达到“简单应用简单应用”层次。层次。各类常用指令的功能。各类常用指令的功能。用常用指令编写简单的控制程序。用常用指令编写简单的控制程序。91

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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