2015课件-第三章48086指令系统_第1页
2015课件-第三章48086指令系统_第2页
2015课件-第三章48086指令系统_第3页
2015课件-第三章48086指令系统_第4页
2015课件-第三章48086指令系统_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12022年年4月月20日星期三日星期三 第第3 3章章 8086/80888086/8088微处理器及其系统微处理器及其系统3.3.1 8086/80881 8086/8088微处理器结构微处理器结构微处理器功能结构微处理器功能结构寄存器结构(编程结构)寄存器结构(编程结构)3.23.2 8086/8088 8086/8088存储器组织存储器组织3.3.3 3 8086/8088 8086/8088工作方式工作方式时序和引脚信号时序和引脚信号最大和最小模式最大和最小模式3.43.4 8086/8088 8086/8088寻址方式寻址方式3.53.5 8086/8088 8086/8088指令

2、系统指令系统22022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统 9292种基本指令,全部公开种基本指令,全部公开 六个功能组(六大类)六个功能组(六大类)(1 1)数据传送)数据传送(Data transfer)(Data transfer)(2 2)算术运算()算术运算(ArithmeticArithmetic)(3 3)逻辑运算和移位指令)逻辑运算和移位指令(Logic & Shift)(Logic & Shift)(4 4)串操作)串操作(String manipulation)(String manipulation)(5 5

3、)控制转移()控制转移(Control TransferControl Transfer)(6 6)处理器控制()处理器控制(Processor ControlProcessor Control)32022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统指令系统的符号约定指令系统的符号约定八位寄存器八位寄存器: : AH/ALAH/AL,BH/BLBH/BL,CH/CLCH/CL,DH/DLDH/DL 十六位通用寄存器十六位通用寄存器: : AX/BX/CX/DX/SP/BP/SI/DI AX/BX/CX/DX/SP/BP/SI/DI 堆栈指

4、针寄存器堆栈指针寄存器SPSP,指令指针寄存器,指令指针寄存器IPIP标志寄存器标志寄存器 F/FLAG/PSWF/FLAG/PSW源变址寄存器和目标变址寄存器源变址寄存器和目标变址寄存器SI/DISI/DI段寄存器段寄存器 CS/DS/ES/SSCS/DS/ES/SS SEG/segSEG/seg通用寄存器通用寄存器 R/REG/r/regR/REG/r/reg存储器存储器 M/MEM/mem/mM/MEM/mem/m累加器累加器AX/AH/AL AX/AH/AL ACC/accACC/acc端口端口 P/p(PORT/port)P/p(PORT/port)42022年年4月月20日星期三日

5、星期三 3.53.5 8086/8088 8086/8088指令系统指令系统指令系统的符号约定指令系统的符号约定源操作数源操作数 SRC/src(S/s)SRC/src(S/s)目的操作数目的操作数 DEST/dest(D/d)DEST/dest(D/d)存储器操作数存储器操作数 BX+SI+DISPBX+SI+DISP,BX+DI+DISPBX+DI+DISP,BP+SI+DISPBP+SI+DISP,BP+DI+DISPBP+DI+DISP SI+DISPSI+DISP,DI+DISPDI+DISP, BP+DISPBP+DISP, BX+DISPBX+DISP 操作数一般在操作数一般在D

6、S/SSDS/SS段段,DISP,DISP为为8 8位或位或1616位数位数 使用段超越指明存储器操作数在其它段,如:使用段超越指明存储器操作数在其它段,如: ES:SI+DISPES:SI+DISP 操作数操作数 OPRDOPRD ,OPOP,oprdoprd,opop 立即数立即数 N/nN/n(imim) n/Nn/N为为8 8位位, nn/NN, nn/NN为为1616位位,nnnn/NNNN,nnnn/NNNN为为3232位位52022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统8086/80888086/8088指令一览表指令

7、一览表62022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统8086/80888086/8088指令一览表指令一览表指指令令类类型型助助记记符符串串操操作作MOVS,CMPS,SCAS,LODS,STOS串串处处理理重重复复控控制制REP,REPE/REPZ,REPNE/REPNZ无无条条件件转转移移JMP条条件件转转移移JE/JZ, JNE/JNZ, JS, JNS, JO, JNOJP, JNP, JC, JNC, JCXZJA/JNBE, JAE/JNB, JB/JNAE, JBE/JNAJG/JNLE, JGE/JNL, JL/J

8、NGE, JLE/JNG循循环环控控制制LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ过过程程调调用用CALL, RET控控制制转转移移中中断断指指令令INT, INTO, IRET处处理理机机控控制制CLC, STC, CMC,CLD, STD, CLI, STINOP, HLT, WAIT, ESC, LOCK72022年年4月月20日星期三日星期三 指令类型指令类型指令格式指令格式指令功能指令功能备注备注通用数据传送通用数据传送MOV dMOV d,s sPUSH sPUSH sPOP dPOP dXCHG dXCHG d,s sXLATXLAT传送字节或字传送字节或字

9、字压入堆栈字压入堆栈字弹出堆栈字弹出堆栈交换字节或字交换字节或字字节翻译字节翻译s:rs:r、m m、imim,d:rd:r、m ms s:r r、m md d:r r(cscs除外除外) )、m ms s:通用:通用r r、m , dm , d: 通用通用r r、m m目标地址传送目标地址传送LEA dLEA d,s sLDS dLDS d,s sLES dLES d,s s装入有效地址装入有效地址装入数据段指针到装入数据段指针到DSDS装入附加段指针到装入附加段指针到ESESs s:m, dm, d:1616位通用位通用r rs s:m, d:m, d: 1616位通用位通用r rs s:

10、m, dm, d:1616位通用位通用r r标志位传送标志位传送LAHFLAHFSAHFSAHFPUSHFPUSHFPOPFPOPF把把F F低字节装入低字节装入AHAH把把AHAH内容装入内容装入F F低字节低字节把把F F内容压入堆栈内容压入堆栈从堆栈中弹出从堆栈中弹出F F内容内容s,ds,d均是隐含均是隐含I/OI/O数据传送数据传送IN acc,portIN acc,portOUT port,accOUT port,acc输入字节或字输入字节或字输出字节或字输出字节或字accacc:alal或或axaxportport:地址:地址0 0255255或间接寄存器或间接寄存器dxdx3.

11、53.5 8086/8088 8086/8088指令系统指令系统数据传送数据传送 (Data transfer)(Data transfer)82022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /通用数据传送通用数据传送MOVMOV指令格式:指令格式: MOV d,s ; d MOV d,s ; d s s功能:把一个字节功能:把一个字节(byte)(byte)或一个字(或一个字(wordword)操作数由源传送至目的,)操作数由源传送至目的,源操作数内容不变。源操作数内容不变。可以实现可以实现: :r

12、rr rimimr rm mr r, r, rm mimimm md d和和s s类型要匹配类型要匹配92022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /通用数据传送通用数据传送MOV MOV 举例举例CPUCPU内部寄存器之间的数据的任意传送内部寄存器之间的数据的任意传送MOV DLMOV DL,CHCH ; 8 ; 8位寄存器位寄存器 8 8位寄存器位寄存器MOV AXMOV AX,DXDX ; 16 ; 16位寄存器位寄存器 1616位寄存器位寄存器MOV SIMOV SI,BPBPMOV DSM

13、OV DS,BXBX ;通用寄存器;通用寄存器 段寄存器段寄存器MOV AX, CS MOV AX, CS ;段寄存器;段寄存器 通用寄存器通用寄存器segseg之间不能互相传送,即两操作数不能同为之间不能互相传送,即两操作数不能同为segsegcscs和和ipip不能作为目标寄存器不能作为目标寄存器102022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /通用数据传送通用数据传送MOVMOV 举例举例立即数传送至立即数传送至CPUCPU内部通用寄存器组内部通用寄存器组AXAX、BXBX、CXCX、DXDX

14、、BPBP、SPSP、SISI、DIDIMOV CLMOV CL,04H04H;立即数;立即数 8 8位寄存器位寄存器MOV AXMOV AX,03FFH03FFH;立即数;立即数 1616位寄存器位寄存器立即数不能传送到立即数不能传送到segseg中,即不能直接给中,即不能直接给segseg赋值赋值MOV DS, 1200H XMOV DS, 1200H X112022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /通用数据传送通用数据传送MOVMOV举例举例立即数传送至存储器(所有寻址方式)立即数传送至存

15、储器(所有寻址方式)MOV WORD PTR SI MOV WORD PTR SI ,057BH 057BH ;立即数;立即数 存储器存储器MOV BYTE PTR MEM, 5 MOV BYTE PTR MEM, 5 ;立即数;立即数 存储器存储器目的操作数不能是立即数目的操作数不能是立即数122022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /通用数据传送通用数据传送MOVMOV举例举例CPUCPU内部寄存器与存储器之间数据传送(内部寄存器与存储器之间数据传送(cscs和和ipip除外)除外)MOV

16、MEM , AXMOV MEM , AX ; ; 累加器累加器存储器存储器MOV MEM ,DSMOV MEM ,DS ;段寄存器;段寄存器存储器存储器MOV DISPBX ,CXMOV DISPBX ,CX ;寄存器;寄存器存储器存储器MOV AX , DISP SIMOV AX , DISP SI ;存储器;存储器累加器累加器MOV DS , MEMMOV DS , MEM ;存储器;存储器段寄存器段寄存器MOV CX , DISP BX SI MOV CX , DISP BX SI ;存储器;存储器累加器累加器存储单元之间不能直接传送,即操作数不能同为存储单元之间不能直接传送,即操作数不

17、能同为m m132022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /通用数据传送通用数据传送MOVMOV练习练习MOV AXMOV AX,BL BL MOV DSMOV DS,1000H1000HMOV BX MOV BX ,SISIMOV ESMOV ES,CSCSMOV CSMOV CS,AXAX例:设例:设B B为已定义字节变量,判断指令正确性。为已定义字节变量,判断指令正确性。MOV AHMOV AH,B B MOV ALMOV AL,0 0 MOV IP, AX MOV IP, AX MOV A

18、XMOV AX, IP IP ;类型不匹配;类型不匹配;不允许立即数送段寄存器;不允许立即数送段寄存器;不允许内存操作数之间传送;不允许内存操作数之间传送;不允许段寄存器之间传送;不允许段寄存器之间传送; CSCS不能作为目的操作数不能作为目的操作数;错误,;错误,IPIP不能做目的操作数不能做目的操作数142022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /通用数据传送通用数据传送MOVMOV错误的错误的MOV MOV 指令指令对字节操作指令对字节操作指令 0-0FFH0-0FFH, 0-255 0-2

19、55 对字操作指令对字操作指令 0-0FFFFH0-0FFFFH, 0-65535 0-65535 MOV AL MOV AL , 260 260 MOV AX MOV AX ,7000070000MOV AL, 1FFHMOV AL, 1FFHMOV AL, 2ABCDHMOV AL, 2ABCDH 152022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /通用数据传送通用数据传送MOVMOV关于关于CSCS和和IPIPCSCS和和IPIP的值只在控制转移指令中被自动修改。的值只在控制转移指令中被自动修改

20、。对非控制转移指令,取完指令后对非控制转移指令,取完指令后IPIP值自动增加值自动增加, ,指向下条指令。指向下条指令。段寄存器段寄存器CSCS的值,只在的值,只在MOVMOV、PUSHPUSH中可作操作数,中可作操作数,下两条指令执行结果不改变下两条指令执行结果不改变CSCS值值 MOV AX, CSMOV AX, CS PUSH CSPUSH CS162022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /堆栈堆栈PUSH-POPPUSH-POP 堆栈:按照先进后出堆栈:按照先进后出Last In Fir

21、st Out Last In First Out (LIFOLIFO)原则组织的一段内)原则组织的一段内存区域。存区域。指令格式:指令格式:PUSH s PUSH s ;进栈;进栈,sp,spspsp-2-2,spsps sPOP d POP d ;出栈,;出栈,d d sp, spsp, sp spsp+2+2特点:随着推入堆栈内容增加,特点:随着推入堆栈内容增加,SPSP的值减少,的值减少,堆栈是按照字操作,每堆栈是按照字操作,每次进栈(出栈)的数为次进栈(出栈)的数为1616位操作数。位操作数。堆栈作用:堆栈作用: 在调用一个过程时,自动保存返回地址;在调用一个过程时,自动保存返回地址;

22、 响应中断,自动保护断点和现场;响应中断,自动保护断点和现场; 暂时存放寄存器或存储器单元操作数的内容;暂时存放寄存器或存储器单元操作数的内容;172022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送/ /堆栈堆栈PUSH-POPPUSH-POP 堆栈操作示例堆栈操作示例 将将1616位通用寄存器位通用寄存器CXCX的内容压入堆栈,然后,弹出栈顶至的内容压入堆栈,然后,弹出栈顶至CXCX中。中。已知:已知:SSSS0200H0200H,SPSP0008H0008H,CXCX12FAH12FAH。182022年年

23、4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送/ /堆栈堆栈PUSH-POPPUSH-POP 可以用下列指令给可以用下列指令给SPSP赋初值,以确定赋初值,以确定SPSP在在SSSS段中的位置。段中的位置。 MOV SP MOV SP,IMIM 设:设:(SS)=9000H ,(SS)=9000H ,堆栈段为堆栈段为64KB64KB MOV SP,0E200HMOV SP,0E200H 则:则: (SP)=0E200H(SP)=0E200H; 堆栈段的容量为:堆栈段的容量为:90000H-9FFFFH90000H-9

24、FFFFH 栈顶的物理地址为:栈顶的物理地址为:9E200H9E200H.偏移地址偏移地址物理地址物理地址00000H(低地址)00000H(低地址)90000H90000H9E200H9E200H9FFFFH9FFFFHFFFFHFFFFH(SP)=E200H(SP)=E200H0000H0000H堆堆栈栈段段192022年年4月月20日星期三日星期三 SP7AH 45H 2000H:10F9H2000H:10FAH2000H:10FBH2000H:10FCH2000H:10FDH2000H:10F8H(AX)= H, (BX)= H, (SS)=2000HPUSH AX2F4DPOP BX

25、3C1E2F4D202022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /交换交换212022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /交换交换举例举例XCHG BL,DLXCHG BL,DLXCHG AX,SIXCHG AX,SIXCHG COUNTDI, AXXCHG COUNTDI, AX XCHG BX,DIXCHG BX,DI( (错)错) XCHG DS, AX (XCHG DS, AX (错)错)222

26、022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送/ /字节翻译字节翻译XLATXLAT功能:功能:完成字节翻译功能的指令,它可以使累加器中的一个值变换为内存表完成字节翻译功能的指令,它可以使累加器中的一个值变换为内存表格中的某一个值,又称查表指令;一般用来实现编码制的转换。格中的某一个值,又称查表指令;一般用来实现编码制的转换。实现过程:实现过程:将将BXBX为首址,为首址,ALAL为位移量的字节存储单元中的数据送为位移量的字节存储单元中的数据送ALAL寄存器。寄存器。BX+ALBX+ALALAL。23202

27、2年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送/ /字节翻译字节翻译XLATXLATXLATXLAT指令使用举例:指令使用举例:内存的数据段中有一张十六进制数字的内存的数据段中有一张十六进制数字的ASCIIASCII码表。首地址为:码表。首地址为:ASCTAB ASCTAB , ,欲查出表中第欲查出表中第1010个元素(个元素(A A),用),用XLATXLAT编程。编程。已知:已知:(DSDS)=F000H=F000H, ASCTAB=0040HASCTAB=0040HMOV BXMOV BX,0040H00

28、40HMOV ALMOV AL,0AH0AHXLATXLAT则:则:AL=F000H:0040H+0AHAL=F000H:0040H+0AH =41H=41H30H30H31H31H32H32H.39H39H41H41H42H42H.46H46H.ASCTABASCTAB +1ASCTAB +2ASCTAB+0AHASCTAB+0BHASCTAB+0FHFBA9120242022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送 / /端口数据传输端口数据传输指令格式:指令格式:IN d,s ; d:acc, s:

29、portIN d,s ; d:acc, s: portOUT d,s : d:port,s: accOUT d,s : d:port,s: acc输入指令输入指令ININ用于用于CPUCPU从外设端口接受数据,输出指令从外设端口接受数据,输出指令OUTOUT用于用于CPUCPU向外设向外设端口发送数据。端口发送数据。无论接受还是发送数据,必须通过累加器无论接受还是发送数据,必须通过累加器AX(AX(字)或字)或AL(AL(字节),又称字节),又称累加器专用传送指令。累加器专用传送指令。端口号中前端口号中前256256个端口(个端口(0-0FFH0-0FFH),可以直接写在指令中,称为直接端),

30、可以直接写在指令中,称为直接端口寻址指令。口寻址指令。当端口号当端口号256256时,必须先把端口号放到时,必须先把端口号放到DXDX寄存器中,指令中的端口号寄存器中,指令中的端口号以以DXDX表示,称为间接端口寻址指令。表示,称为间接端口寻址指令。252022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统 IBM/PCIBM/PC机端口机端口在在IBMPCIBMPC机里,可以配接许多外部设备,每个外设与机里,可以配接许多外部设备,每个外设与CPUCPU之间交换数据,之间交换数据,状态信息和控制命令,每一种信息交换都要通过一个端口来进行。状

31、态信息和控制命令,每一种信息交换都要通过一个端口来进行。端口数:外部设备最多有端口数:外部设备最多有6553665536个个I/OI/O端口。由端口。由A0-A15A0-A15译码形成。译码形成。端口号:(即外设端口地址)为端口号:(即外设端口地址)为0000H-0FFFFH0000H-0FFFFH。PCPC机仅使用机仅使用A0-A9A0-A9译码形成译码形成I/OI/O口地址,即口地址,即10241024(1K1K)个端口地址,对应)个端口地址,对应的端口号为的端口号为0000H-03FFH0000H-03FFH,其中:,其中:A9=1A9=1,表示扩充槽上的口地址。,表示扩充槽上的口地址。

32、262022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送 / /端口数据传输端口数据传输端口输入端口输入/ /输出输出 IN AL, data8 ; IN AL, data8 ; 端口地址端口地址8 8位,输入一个字节位,输入一个字节 IN AX, data8 IN AX, data8 ;端口地址;端口地址8 8位,输入一个字位,输入一个字 IN AL, DX IN AL, DX ;端口地址;端口地址1616位,输入一个字节位,输入一个字节 IN AX, DX IN AX, DX ;端口地址;端口地址1616位

33、,输入一个字位,输入一个字 OUT data8 , AL ; OUT data8 , AL ; 端口地址端口地址8 8位,输出一个字节位,输出一个字节 OUT data8, AX OUT data8, AX ;端口地址;端口地址8 8位,输出一个字位,输出一个字 OUT DX , AL OUT DX , AL ;端口地址;端口地址1616位,输出一个字节位,输出一个字节 OUT DX , AX OUT DX , AX ;端口地址;端口地址1616位,输出一个字位,输出一个字 必须通过累加器必须通过累加器AX(AX(字)或字)或AL(AL(节)输入数据。节)输入数据。272022年年4月月20日

34、星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送/ /端口数据传输端口数据传输举例举例P73-P75P73-P75实现(实现(29H29H)()(28H28H)(DATA_WORDDATA_WORD)IN AXIN AX,28H 28H MOV DATA_WORDMOV DATA_WORD,AXAX从端口从端口3FCH 3FCH 送一个字到送一个字到AXAX寄存器寄存器MOV DXMOV DX,3FCH 3FCH IN AXIN AX,DX ; ALDX ; AL3FCH,AH3FCH,AH3FDH3FDH 实现将(实现将(ALA

35、L) (05H05H)OUT 5OUT 5,ALAL;05H05HALAL282022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /目标地址传送目标地址传送专用于专用于8086 /8088 8086 /8088 中传送地址的指令,将地址指针写入指定寄存器。中传送地址的指令,将地址指针写入指定寄存器。可传送存储器的逻辑地址(即存储器操作数的段地址或偏移地址)。可传送存储器的逻辑地址(即存储器操作数的段地址或偏移地址)。 LEALEA,取有效地址指令,取有效地址指令 LDSLDS,取偏移地址及数据段首址,并装入

36、,取偏移地址及数据段首址,并装入DSDS寄存器寄存器 LESLES,取偏移地址及附加数据段,并装入,取偏移地址及附加数据段,并装入ESES寄存器寄存器292022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /目标地址传送目标地址传送LEALEA指令格式:指令格式: LEA reg16 , mem16 ;EALEA reg16 , mem16 ;EA(reg16)(reg16)功能:把指令中指定的存储器操作数有效地址装入指定的寄存器。功能:把指令中指定的存储器操作数有效地址装入指定的寄存器。要求:要求:源操作

37、数必须为内存单元地址,目的操作数必须为一个源操作数必须为内存单元地址,目的操作数必须为一个1616位的位的通用寄存器。通用寄存器。该指令常用来使一个寄存器作为地址指针。该指令常用来使一个寄存器作为地址指针。举例举例LEALEAAXAX,2F4DH 2F4DH ;将;将2F4DH2F4DH单元的偏移量送单元的偏移量送AXAX,指令执行后,指令执行后,AX=2F4DHAX=2F4DH。LEALEABXBX,BP+SIBP+SI;指令执行后,;指令执行后,BXBX中的内容为(中的内容为(BP+SI)BP+SI)的值。的值。LEALEASPSP,0482H 0482H ;初始化堆栈指针;初始化堆栈指针

38、SP=482HSP=482H。P72P72例题例题302022年年4月月20日星期三日星期三 40H40H00H00H.3000H:1000H3000H:1000H(DS)(DS) BUFFERBUFFER31001H31001H.存储器存储器(1 1) 数据传送数据传送/ /目标地址传送目标地址传送LEALEALEA LEA 与与MOVMOV比较比较DS=3000HDS=3000HBUFFER=1000HBUFFER=1000H31000H=0040H31000H=0040HLEA BX, BUFFERLEA BX, BUFFERBX=1000HBX=1000HMOV BX, BUFFER

39、MOV BX, BUFFER BX=0040H BX=0040H MOV BX, OFFSET BUFFERMOV BX, OFFSET BUFFERLEALEA是取源操作数的是取源操作数的EAEA,MOVMOV是取源操作数中存放的内容。是取源操作数中存放的内容。3.53.5 8086/8088 8086/8088指令系统指令系统312022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /目标地址传送目标地址传送LDS/LESLDS/LES指令格式:指令格式:LDS reg16, mem32LDS reg16

40、, mem32 ;reg16reg16EA,dsEA,dsEA+2EA+2LES reg16, mem32LES reg16, mem32 ;reg16reg16EA,esEA,esEA+2EA+2功能:将指定存储单元功能:将指定存储单元mem32mem32开始前两个单元内容开始前两个单元内容(16(16位偏移量位偏移量) )装入指装入指定通用寄存器,把后两个单元内容定通用寄存器,把后两个单元内容( (段地址段地址) ) 装入到装入到dsds或或eses段寄存器。段寄存器。LESLES指令与指令与LDSLDS指令的操作基本相同。指令的操作基本相同。LESLES将源操作数所指向地址指针中的段地址

41、将源操作数所指向地址指针中的段地址( (后两个字节后两个字节) )传送到传送到ESES段寄段寄存器,而存器,而LDSLDS传送到传送到DSDS段寄存器。段寄存器。LDSLDS常以常以SISI为目的操作数为目的操作数,LES,LES常以常以DIDI为目的操作数为目的操作数。322022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1) 数据传送数据传送/ /目标地址传送目标地址传送LDS/LESLDS/LES 举例举例例:(例:(DSDS)=C000H=C000H,(,(C2480HC2480H)=1357H=1357H,(,(C248

42、2HC2482H)=2468H=2468H57H13H68H24HDS:2480HDS:2481HDS:2482HDS:2483H 13 57 SI 24 68 DSLDS SI,2480H332022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送/ /目标地址传送目标地址传送LDS/LESLDS/LES举例举例例:(例:(ESES)=C000H=C000H,(,(C2480HC2480H)=1357H=1357H,(,(C2482HC2482H)=2468H=2468H57H13H68H24HES:2480HE

43、S:2481HES:2482HES:2483H 13 57 DI 24 68 ESLES DI,2480H342022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送/ /目标地址传送目标地址传送LEA/LDS/LESLEA/LDS/LES综合练习综合练习已知已知(DS)=5000H(DS)=5000H,TABLE=1000HTABLE=1000H分析下列指令执行结果:分析下列指令执行结果:MOV BXMOV BX,TABLETABLE;BX=0040HBX=0040HMOV BXMOV BX,OFFSET TAB

44、LEOFFSET TABLE;BX=1000HBX=1000HLEA BXLEA BX,TABLETABLE;BX=1000HBX=1000HLES DILES DI,TABLETABLE;DI=0040HDI=0040H,ES=3000HES=3000HLDS SILDS SI,TABLETABLE;SI=0040HSI=0040H,DS=3000HDS=3000H40H40H00H00H00H00H5000H:1000H5000H:1000H(DS)(DS) TABLETABLE51001H51001H.存储器存储器30H30H.51002H51002H51003H51003H352022

45、年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(1 1)数据传送)数据传送/ /标志位传送标志位传送P73P73采用了隐含操作数(采用了隐含操作数(AH,FLAGAH,FLAG)PUSHFPUSHF和和POPFPOPF指令执行后,指令执行后,SPSP值要变换值要变换( (堆栈操作堆栈操作) )读取标志指令读取标志指令LAHFLAHF(Load AH from flagsLoad AH from flags)设置标志指令设置标志指令SAHFSAHF(Store AH into flagsStore AH into flags)标志寄存器进栈指

46、令标志寄存器进栈指令PUSHFPUSHF(Push flags onto stackPush flags onto stack)标志寄存器出栈指令标志寄存器出栈指令POPFPOPF(Pop flags off stackPop flags off stack362022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(2 2) 算术运算(算术运算(ArithmeticArithmetic)具有完备的加、减、乘、除算术运算指令,可处理不带符号或带符号具有完备的加、减、乘、除算术运算指令,可处理不带符号或带符号的的8/168/16位二进制整数,以

47、及不带符号的压缩位二进制整数,以及不带符号的压缩/ /非压缩十进制整数。非压缩十进制整数。一般地,一般地,s s可为可为imim,通用,通用regreg,memmem三种寻址方式三种寻址方式,d,d可为通用可为通用regreg,memmem两两种寻址方式。种寻址方式。指令类别指令类别指令功能指令功能指令格式指令格式对标志位影响对标志位影响加法加法不带进位加法不带进位加法带进位加法带进位加法自加自加1ADD d,s ; dd+sADC d,s ; dd+s+CFINC d ; dd+1影响影响6个标志位个标志位影响影响6个标志位个标志位不影响不影响CF减法减法不带进位减法不带进位减法带进位减法带

48、进位减法自减自减1取补取补比较比较SUB d,s ; dd-sSBB d,s ; dd-s-CFDEC d ; dd-1NEG d ; (NOT d)+1CMP d,s ; d-s影响影响6个标志位个标志位影响影响6个标志位个标志位不影响不影响CF影响除影响除CF外的外的5个标志位,个标志位,CF=1影响影响6个标志位个标志位372022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(2 2) 算术运算算术运算/ /加法指令加法指令举例举例 CFA1H CFA1H 1100 1111 010 00011100 1111 010 0001 +

49、 62A0H + 0110 0010 1010 0000 + 62A0H + 0110 0010 1010 0000 111 1 1 1 1111 1111 1 1 1 1111 1 3241H 0011 0010 0100 0001 3241H 0011 0010 0100 0001MOV DXMOV DX,0CFA1H0CFA1HADD DXADD DX,62A0H62A0H执行后执行后: :(DXDX)=3241H CF=1=3241H CF=1,OF=0OF=0,SF=0SF=0, ZF=0ZF=0(注意:(注意:CFCF和和OFOF的判断方法,的判断方法,OF=COF=CD6D6 C

50、 CD7D7) )382022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(2 2) 算术运算算术运算/ /加法指令加法指令 举例举例 01FFH01FFH+ 0001H+ 0001H进位进位1111 0200H 0200H value value 是一个是一个字字变量变量, , OFFSET value = 1000H OFFSET value = 1000H (DSDS)=2000H=2000H,(,(21000H21000H)=01FFH=01FFHvalue FF21000H 01执行前执行前value 0021000H 02执行

51、后执行后执行后:执行后:(21000H21000H)=0200H=0200H CF= CF=不变,不变,OF=0OF=0,ZF=0ZF=0,SF=0SF=0注意:注意: INC valueINC value是内存单元内容加是内存单元内容加1 1,而非地址加,而非地址加1 1INC valueINC value或写成或写成: :INC valueINC value392022年年4月月20日星期三日星期三 带进位加:两双字相加带进位加:两双字相加 0002F365H + 0005 E024 H = ?0002F365H + 0005 E024 H = ?分析:分析: 8086/80888086/

52、8088只能按字节或字相加。位数在字以上的操作数,先加低只能按字节或字相加。位数在字以上的操作数,先加低位,再加高位,加高位时加入从低位产生的进位。位,再加高位,加高位时加入从低位产生的进位。MOV AXMOV AX,0F365H 0F365H ADD AXADD AX,0E024H 0E024H MOV BXMOV BX,0002H 0002H ADC BXADC BX,0005H 0005H 0002 F365 H0002 F365 H + 0005 E024 H + 0005 E024 H进位进位0008 D389 H0008 D389 H结果存放在结果存放在: :0008 D38900

53、08 D389 BX BX AXAX执行完、:执行完、:AX= D389H CF=1, OF=0, SF=1, ZF=0AX= D389H CF=1, OF=0, SF=1, ZF=0执行完、:执行完、:BX= 0008H CF=0, OF=0, SF=0, ZF=0BX= 0008H CF=0, OF=0, SF=0, ZF=03.53.5 8086/8088 8086/8088指令系统指令系统(2 2) 算术运算算术运算/ /加法加法 举例举例402022年年4月月20日星期三日星期三 3.53.5 8086/8088 8086/8088指令系统指令系统(2 2) 算术运算算术运算/ /减法指令减法指令举例举例执行后执行后: : (AXAX)=0F254H CF=1=0F254H CF=1,OF=0OF=0,SF=1SF=1,ZF=0ZF=02D04H 0010 11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论