NEW03第三章80x86指令系统.ppt

上传人:wuy****n92 文档编号:70799931 上传时间:2023-01-28 格式:PPT 页数:73 大小:508.50KB
返回 下载 相关 举报
NEW03第三章80x86指令系统.ppt_第1页
第1页 / 共73页
NEW03第三章80x86指令系统.ppt_第2页
第2页 / 共73页
点击查看更多>>
资源描述

《NEW03第三章80x86指令系统.ppt》由会员分享,可在线阅读,更多相关《NEW03第三章80x86指令系统.ppt(73页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、微机原理与接口微机原理与接口电子科技大学电子科技大学第3章 8086/8088指令系统3.1 8086/8088指令格式与寻址方式3.2 数据传送类指令3.3 算数运算类指令3.4 逻辑运算与移位指令3.5 串操作类指令3.6 控制转移类指令3.7 标志处理和处理器控制类指令微机原理与接口微机原理与接口电子科技大学电子科技大学3.1 8086/8088指令格式与寻址方式机器指令机器指令 操作码操作码地址码地址码操作数或操作数的地址操作数或操作数的地址表示该指令所要完成的操作表示该指令所要完成的操作 都是二进制代码都是二进制代码3.1.1 指令的基本格式指令的基本格式微机原理与接口微机原理与接口

2、电子科技大学电子科技大学汇编语言:符号化了的机器语言,用助记符代替机汇编语言:符号化了的机器语言,用助记符代替机 器语言的二进制代码。器语言的二进制代码。2.8086/8088汇编语言指令标号:标号:指令助记符指令助记符操作数操作数;注释;注释,az、AZ、09或某些特殊符号(或某些特殊符号(,-,?),?)第一个字符必须是字母或某些特殊符号(第一个字符必须是字母或某些特殊符号(,-,?),?)?不能单独使用?不能单独使用标识符有效长度为标识符有效长度为31个字符个字符标识符:标识符:例:例:MOV AL,80H微机原理与接口微机原理与接口电子科技大学电子科技大学3.1.2 指令的寻址方式指令

3、的寻址方式指令的寻址方式顺序寻址方式顺序寻址方式跳转寻址方式跳转寻址方式微机原理与接口微机原理与接口电子科技大学电子科技大学3.1.3 8086/8088操作数的寻址方式1.立即数寻址立即数寻址操作数就包含在指令当中操作数就包含在指令当中MOV AL,80H ;将十六进制数;将十六进制数80H送入送入ALMOV AX,1090H ;将;将1090H送入送入AX源操作数源操作数目的操作数目的操作数例:例:立即数可以是立即数可以是8位、位、16位位 立即数只能是整数,不能是小数、变量或其它类型的数据立即数只能是整数,不能是小数、变量或其它类型的数据立即数只能作为源操作数立即数只能作为源操作数 微机

4、原理与接口微机原理与接口电子科技大学电子科技大学2.寄存器寻址操作数在操作数在8位、位、16位(或位(或32位)通用寄存器中位)通用寄存器中寄存器可以是寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP AH、AL、BH、BL、CH、CL、DH、DL 在一条指令中,可以对源操作数采用寄存器寻址,也可以在一条指令中,可以对源操作数采用寄存器寻址,也可以对目标操作数采用寄存器寻址,还可以两者都采用寄存器寻址对目标操作数采用寄存器寻址,还可以两者都采用寄存器寻址方式方式INC CX ;将;将CX的内容加的内容加1ROL AH,1 ;将;将AH中的内容循环左移一位中的内容循环左移一位MOV A

5、X,BXMOV AX,1090H例:例:386以上以上微机原理与接口微机原理与接口电子科技大学电子科技大学3.存储器寻址存储器寻址存储器寻址存储器寻址直接寻址直接寻址寄存器间接寻址寄存器间接寻址寄存器相对寻址寄存器相对寻址基址变址寻址基址变址寻址相对基址变址寻址相对基址变址寻址微机原理与接口微机原理与接口电子科技大学电子科技大学操作数的操作数的逻辑地址逻辑地址包含在指令中包含在指令中(1 1)直接寻址)直接寻址例:例:MOV AX,1070H ;DS段的段的1070H和和1071H两单元的内容传送到两单元的内容传送到AX中中假设假设DS=5000H,地址为,地址为51070H字存储单元字存储单

6、元的内容是的内容是6789H。注意:立即数寻址和直接寻址的书写格式,注意:立即数寻址和直接寻址的书写格式,直接寻址的地址要放在方括号中直接寻址的地址要放在方括号中1070H+存储器存储器代码段代码段数据段数据段1070OP50000H.6789.00000HDS1650000H6789AXAH AL51070H物理地址物理地址51070H51071H由地址加由地址加法器完成法器完成微机原理与接口微机原理与接口电子科技大学电子科技大学例:例:MOV AX,VALUE 或或 MOV AX,VALUE符号地址符号地址微机原理与接口微机原理与接口电子科技大学电子科技大学(2)寄存器间接寻址操作数在存储

7、器中,操作数的逻辑地址由操作数在存储器中,操作数的逻辑地址由寄存器寄存器提供提供寄存器的内容是段内的偏移地址。寄存器的内容是段内的偏移地址。BX、BP、SI、DI 之一之一注:如果没有特殊说明,用寄存器注:如果没有特殊说明,用寄存器SI、DI和和BX间接寻址时,间接寻址时,对应的段寄存器是对应的段寄存器是DS。如果用寄存器。如果用寄存器BP间接寻址时,间接寻址时,对应的段寄存器是对应的段寄存器是SS。例例1:MOV AX,SI 假设(假设(DS)=5000H,(,(SI)=1234H则:源操作数的物理地址是则:源操作数的物理地址是51234H 再假设再假设51234H字单元的内容是字单元的内容

8、是6789H,执行该条指令后(执行该条指令后(AX)=6789H微机原理与接口微机原理与接口电子科技大学电子科技大学例例2:MOV BP,CX 假设(假设(SS)=4000H,(,(BP)=1234H,(,(CX)=6789H则:目的操作数的物理地址为则:目的操作数的物理地址为41234H (SS)16+(BP)=41234H执行该条指令后(执行该条指令后(41234)=89H,(,(41235)=67H微机原理与接口微机原理与接口电子科技大学电子科技大学8位位移量位位移量16位位移量位位移量(3)寄存器相对寻址带位移量的寄存器间接寻址带位移量的寄存器间接寻址逻辑地址逻辑地址=BXBPSI D

9、I+再假设再假设548ACH字字存储单元的内容是存储单元的内容是55AAH那么,执行该指令后,(那么,执行该指令后,(AX)=55AAH例:例:MOV AX,DI+1234H 假设(假设(DS)=5000H,(,(DI)=3678H则:源操作数的物理地址是则:源操作数的物理地址是548ACH50000H 3678H 1234H548ACH+带位移量的寄带位移量的寄存器间接寻址存器间接寻址MOV AX,1234HDI另一种书写格式另一种书写格式微机原理与接口微机原理与接口电子科技大学电子科技大学BX、BP和和SI、DI寄存器组合起来进行间接寻址寄存器组合起来进行间接寻址有效地址有效地址EA(逻辑

10、地址)(逻辑地址)BXBP+SIDI一个基址寄存器的一个基址寄存器的内容加上一个变址内容加上一个变址寄存器的内容。寄存器的内容。=(4 4)基址变址寻址基址变址寻址微机原理与接口微机原理与接口电子科技大学电子科技大学例:例:MOV AX,BX+SI假设假设(DS)=1000H,(,(BX)=5000H,(,(SI)=2000H则:有效地址为:则:有效地址为:7000H(BX)+(SI)物理地址为:物理地址为:17000H(DS)*16+有效地址有效地址语句执行后(语句执行后(17000H)和()和(17001H)AX微机原理与接口微机原理与接口电子科技大学电子科技大学(5 5)相对基址变址寻址

11、相对基址变址寻址MOV AX,MASKBXSI MOV BH,4DIBPMOV BH,BP+DI+4例:例:基址变址寻址加上一个相对位移量基址变址寻址加上一个相对位移量 微机原理与接口微机原理与接口电子科技大学电子科技大学综合练习假设:假设:BX=0158H,DI=10A5H,位移量,位移量=1B57H,DS=2100H 指令没有使用前缀。指令没有使用前缀。直接寻址:有效地址直接寻址:有效地址=物理地址物理地址=1B57H21000H+1B57H=22B57H 寄存器间接寻址(寄存器为寄存器间接寻址(寄存器为BX):):有效地址有效地址=物理地址物理地址=0158H21000H+0158H=2

12、1158H BX寄存器相对间接寻址:寄存器相对间接寻址:有效地址有效地址=物理地址物理地址=0158H+1B57H=1CAFH21000H+1CAFH=22CAFH微机原理与接口微机原理与接口电子科技大学电子科技大学综合练习假设:假设:BX=0158H,DI=10A5H,位移量,位移量=1B57H,DS=2100H 指令没有使用前缀。指令没有使用前缀。10A5H21000H+10A5H=220A5H10A5H+1B57H=2BFCH21000H+2BFCH=23BFCH0158H+10A5H=11FDH21000H+11FDH=221FDH 变址寻址:变址寻址:有效地址有效地址=物理地址物理地

13、址=(DI)DI寄存器相对变址寻址:寄存器相对变址寻址:有效地址有效地址=物理地址物理地址=基址加变址的寻址(基址加变址的寻址(BX为基址寄存器,为基址寄存器,DI为变址寄存器)为变址寄存器)有效地址有效地址=物理地址物理地址=微机原理与接口微机原理与接口电子科技大学电子科技大学 相对基址加变址的寻址相对基址加变址的寻址 (BX为基址寄存器,为基址寄存器,DI为变址寄存器)为变址寄存器)0158H+10A5H+1B57H=2D54H21000H+2D54H=23D54H 综合练习综合练习有效地址有效地址=物理地址物理地址=假设:假设:BX=0158H,DI=10A5H,位移量,位移量=1B57

14、H,DS=2100H 指令没有使用前缀。指令没有使用前缀。微机原理与接口微机原理与接口电子科技大学电子科技大学3.2 数据传送类指令3.2.1 3.2.1 通用数据传送指令通用数据传送指令通用数据传送指令通用数据传送指令格式:格式:MOV OPRD1,OPRD2目的目的源源功能:把一个字节或一个字从源操作数功能:把一个字节或一个字从源操作数PORD2送至送至 目的操作数目的操作数OPRD1,源操作数不改变。,源操作数不改变。注意:注意:1、源和目的操作数的类型要一致,即同时为字节或同时为字、源和目的操作数的类型要一致,即同时为字节或同时为字2、不允许对、不允许对IP,CS进行操作进行操作3、两

15、个存储器操作数之间不允许直接进行信息传输、两个存储器操作数之间不允许直接进行信息传输4、两个段寄存器之间不能直接传送信息,也不允许用立即寻址方式、两个段寄存器之间不能直接传送信息,也不允许用立即寻址方式为段寄存器赋值为段寄存器赋值5、目的操作数不能为立即寻址方式、目的操作数不能为立即寻址方式微机原理与接口微机原理与接口电子科技大学电子科技大学例:例:MOV AX,1000HMOV AL,EMOV AX,2BPSI;立即数送到;立即数送到AX;立即数送到;立即数送到AL,E的的ASCII码码;存储单元的内容送到;存储单元的内容送到AX(SS)16+(BP)+(SI)+2如果如果BP换成换成BX?

16、微机原理与接口微机原理与接口电子科技大学电子科技大学判断对错判断对错MOV 5,ALMOV BX,SIMOV DS,1000HMOV CS,AXMOV AX,DXMOV SI,SIMOV SI,AX微机原理与接口微机原理与接口电子科技大学电子科技大学3.2.2 交换传送指令(XCHG)格式:格式:XCHG OPRD1,OPRD2功能:操作数功能:操作数OPRD1的内容与操作数的内容与操作数OPRD2的内容交换的内容交换例:例:XCHG AL,AH XCHG SI,BX XCHG AL,SI+3 XCHG DI+BX+3,DX注意:注意:1、两个存储器操作数不能互相交换、两个存储器操作数不能互相

17、交换2、段寄存器和立即数都不能作为操作数、段寄存器和立即数都不能作为操作数微机原理与接口微机原理与接口电子科技大学电子科技大学假设:假设:SS=5000H,SP=2000H00000H52000HFFFFFH格式:格式:PUSH OPRD功能:功能:SP-2,把源操作数把源操作数 OPRD 的的16位数位数 据压入堆栈据压入堆栈例:例:AX=8A9BH执行执行 PUSH AX SP自动减自动减2 将将AX的内容传送到的内容传送到 SP指向的单元指向的单元一段一段RAM区域区域堆栈段堆栈段 1.入栈指令PUSH 50000H段开始地址段开始地址SP栈底栈底SP00000H52000HFFFFFH

18、51FFEH51FFFH500000H执行执行PUSH AX后后9B8A3.2.3 3.2.3 堆栈指令堆栈指令微机原理与接口微机原理与接口电子科技大学电子科技大学格式:格式:POP OPRD功能:从堆栈中弹出功能:从堆栈中弹出 16位数据到目位数据到目 的操作数的操作数OPRD ,SP自动加自动加22.出栈指令POP可以是通用寄存器、段寄存器可以是通用寄存器、段寄存器(CS除外)和字存储单元除外)和字存储单元SP00000H52000HFFFFFH51FFEH51FFFH500000H执行执行POP BX前前9B8A执行指令执行指令 POP BX执行后执行后BX=8A9BHSP自动加自动加2

19、,指向新的栈顶,指向新的栈顶SP00000H52000HFFFFFH51FFEH51FFFH500000H执行执行POP BX后后BX微机原理与接口微机原理与接口电子科技大学电子科技大学3.2.4 有效地址传送指令格式:格式:LEA REG,OPRD16位的通用寄存器位的通用寄存器功能:把操作数的有效功能:把操作数的有效地址地址传送到操作数传送到操作数REG寄存器寄存器例:例:LEA AX,2728H ;执行后,执行后,AX=2728H LEA BX,BP+SI ;指令执行后,;指令执行后,BX的内容为的内容为 BP+SI的值的值注意:注意:LEA 和和 MOV 的区别的区别微机原理与接口微机

20、原理与接口电子科技大学电子科技大学3.2.5 换码指令XLAT格式:格式:XLAT功能:完成一个字节的查表转换。功能:完成一个字节的查表转换。把累加器把累加器AL中的值,转换成以中的值,转换成以BX为表基址的表中值为表基址的表中值执行后执行后AL=30HMOV BX,2000HMOV AL,3XLAT10H00H78H02H12H19H30H24H79H40H例:假设七段码存放在例:假设七段码存放在2000H开始的内存中,开始的内存中,取出取出3所对应的七段码所对应的七段码(程序片段如下)(程序片段如下)2000H2009H9.543210BX+ALBX+1BX+0换码指令的功能换码指令的功能

21、AL七段数码管七段数码管微机原理与接口微机原理与接口电子科技大学电子科技大学判断对错:判断对错:PUSH ALPOP CSXCHG DS,BXXCHG BX,SIPOP BHXCHG AX,1234H微机原理与接口微机原理与接口电子科技大学电子科技大学3.2.6 标志寄存器传送指令1.1.读取标志指令读取标志指令读取标志指令读取标志指令LAHFLAHF(Load AH with FlagsLoad AH with Flags)格式:格式:LAHF功能:把标志寄存器的低功能:把标志寄存器的低8位对应的传送到寄存器位对应的传送到寄存器AH OFDFIFTFSFZF AF PF CFFRAH2.2.

22、设置标志指令设置标志指令设置标志指令设置标志指令SAHFSAHF(Store AH into FlagsStore AH into Flags)格式:格式:SAHF功能:把寄存器功能:把寄存器AH的内容对应的送至标志寄存器的低的内容对应的送至标志寄存器的低8位位 OFDFIF TFSFZF AF PF CFFRAH微机原理与接口微机原理与接口电子科技大学电子科技大学3.3.标志寄存器入栈指令标志寄存器入栈指令标志寄存器入栈指令标志寄存器入栈指令PUSHFPUSHF格式:格式:PUSHF功能:功能:SP-2,把标志寄存器的内容(,把标志寄存器的内容(16位)压入堆栈位)压入堆栈4.4.标志寄存器

23、出栈指令标志寄存器出栈指令标志寄存器出栈指令标志寄存器出栈指令POPFPOPF格式:格式:POPF功能:把当前栈顶的一个功能:把当前栈顶的一个字字传送到标志寄存器,传送到标志寄存器,SP+2MOV AH,0C1H例:例:AHSF ZF AF PF CF11000001 11000001SAHFFR的低的低8位位3.2.6 3.2.6 标志寄存器传送指令标志寄存器传送指令微机原理与接口微机原理与接口电子科技大学电子科技大学3.2.7 输入/输出数据传送指令1.1.输入指令输入指令输入指令输入指令 ININ格式:格式:IN 累加器,端口地址累加器,端口地址功能:从一个端口读取一个字节或一个字,传送

24、到功能:从一个端口读取一个字节或一个字,传送到AL或或AX端口地址可以直接给出端口地址可以直接给出或由或由DX寄存器间接给出寄存器间接给出例:例:IN AL,50H ;将;将50H端口的字节读入端口的字节读入AL IN AX,70H ;将;将70H、71H两端口的值读入两端口的值读入AX IN AL,DX ;从;从DX所指的端口中读取一个字节所指的端口中读取一个字节 IN AX,DX ;从;从DX和和DX+1所指的两个端口读取一个字所指的两个端口读取一个字注意:外部设备最多可有注意:外部设备最多可有65536个个I/O端口(端口(0000FFFFH),),只有前只有前256个端口可在指令中直接

25、给出(个端口可在指令中直接给出(00FFH)直接寻址或长格式间接寻址或短格式间接寻址或短格式微机原理与接口微机原理与接口电子科技大学电子科技大学2.2.输出指令输出指令输出指令输出指令OUTOUT格式:格式:OUT 端口地址,累加器端口地址,累加器功能:将功能:将AL中的一个字节或中的一个字节或AX中的一个字输出到指定端口中的一个字输出到指定端口例:例:OUT 70H,AL OUT DX,AL传送类指令不影响标志位传送类指令不影响标志位微机原理与接口微机原理与接口电子科技大学电子科技大学判断对错:判断对错:OUT 258,ALOUT DX,BLIN AL,1234HIN AL,BHOUT 12

26、0,ALOUT DX,ALIN AL,80HIN AL,DX 微机原理与接口微机原理与接口电子科技大学电子科技大学3.3 算术运算类指令3.3.1 3.3.1 加法指令加法指令加法指令加法指令1.1.加法指令加法指令加法指令加法指令ADDADD格式:格式:ADD OPRD1,OPRD2功能:两个操作数相加,结果送至目的操作数功能:两个操作数相加,结果送至目的操作数OPRD1例:例:ADD AL,50H ;AL的内容和的内容和50H相加,结果相加,结果AL中中 ADD CX,1000H ;CX的内容和的内容和1000H相加,结果放在相加,结果放在CX中中 ADD DI,SI ;DI和和SI的内容

27、相加,结果放在的内容相加,结果放在DI中中 ADD BX+DI,AX ;BX+DI和和BX+DI+1两个存储单元和两个存储单元和AX 相加,结果放在相加,结果放在BX+DI和和BX+DI+1所所 指的存储单元中指的存储单元中 ADD AX,BX+2000H;BX+2000H和和BX+2001H所指的两个单元所指的两个单元 的内容和的内容和AX的内容相加,结果在的内容相加,结果在AX中中注意:两个操作数不能同时为存储器寻址方式注意:两个操作数不能同时为存储器寻址方式微机原理与接口微机原理与接口电子科技大学电子科技大学2.2.带进位加法指令带进位加法指令带进位加法指令带进位加法指令ADC ADC

28、格式:格式:ADC OPRD1,OPRD2功能:两个操作数相加再加上进位标志功能:两个操作数相加再加上进位标志CF,结果送至目,结果送至目 的操作数的操作数OPRD1MOV SI,2000H ;第一个数的首址;第一个数的首址MOV DI,3000H ;第二个数的首址;第二个数的首址MOV AX,SI ;第一个数的低;第一个数的低16位取到位取到AX ADD AX,DI ;两个数的低;两个数的低16位相加位相加MOV SI,AX ;低;低16位相加的结果送到位相加的结果送到2000H字单元字单元MOV AX,SI+2 ;取第一个数的高;取第一个数的高16位到位到AX中中ADC AX,DI+2 ;

29、两个高;两个高16位数相加,再加位数相加,再加CFMOV SI+2,AX ;高;高16位的结果送到位的结果送到2002H和和2003H单元单元例:将两个四字节的无符号数相加,两例:将两个四字节的无符号数相加,两个数分别放在个数分别放在2000H、3000H开始的单开始的单元,要求结果放在元,要求结果放在2000H开始的单元开始的单元MOV DI,2000HMOV SI,3000HMOV AX,SI ADD DI,AX MOV AX,SI+2ADC DI+2,AXMOV DI,2000HMOV SI,3000HMOV AX,SIADD DI,AX ADD SI,2 ADD DI,2 MOV AX

30、,SIADC DI,AXPOPFPUSHF微机原理与接口微机原理与接口电子科技大学电子科技大学3.3.增量指令增量指令增量指令增量指令 INCINC格式:格式:INC OPRD功能:操作数功能:操作数OPRD的内容加的内容加1,结果送回,结果送回OPRD该指令结果不影响进位标志该指令结果不影响进位标志CF,影响其它的五个状态标志,影响其它的五个状态标志例:例:INC AL ;AL的内容加的内容加1 INC CX ;CX的内容加的内容加1 INC BX;存储单元的内容加;存储单元的内容加1通用寄存器、通用寄存器、存储器存储器微机原理与接口微机原理与接口电子科技大学电子科技大学3.3.2 减法指令

31、1.减法指令减法指令SUB格式:格式:SUB OPRD1,OPRD2功能:功能:目的操作数减去源操作数,结果送到目的标操作目的操作数减去源操作数,结果送到目的标操作 数,源操作数不变数,源操作数不变执行结果影响标志寄存器执行结果影响标志寄存器2.带借位的减法指令带借位的减法指令SBB格式:格式:SBB OPRD1,OPRD2功能:操作数功能:操作数OPRD1减去操作数减去操作数OPRD2的同时还要减去的同时还要减去 借位(进位)标志借位(进位)标志CF的现行值的现行值执行结果影响标志寄存器执行结果影响标志寄存器微机原理与接口微机原理与接口电子科技大学电子科技大学3.3.减量指令减量指令减量指令

32、减量指令DECDEC格式:格式:DEC OPRD功能:操作数功能:操作数OPRD的内容减的内容减1,并把结果送回,并把结果送回OPRD执行结果不影响执行结果不影响CF,但影响其它五个状态标志,但影响其它五个状态标志4.4.取补指令取补指令取补指令取补指令NEGNEG格式:格式:NEG OPRD功能:对操作数取补码,将结果送回操作数功能:对操作数取补码,将结果送回操作数OPRD中中实际上是用零减实际上是用零减去操作数去操作数执行结果影响状态标志执行结果影响状态标志微机原理与接口微机原理与接口电子科技大学电子科技大学5.5.比较指令比较指令比较指令比较指令CMPCMP格式:格式:CMP OPRD1

33、,OPRD2功能:功能:操作数操作数OPRD1减去减去OPRD2,运算结果不送,运算结果不送 到到OPRD1但影响状态标志但影响状态标志注意:两个操作数本身都没有发生变化注意:两个操作数本身都没有发生变化微机原理与接口微机原理与接口电子科技大学电子科技大学3.3.3 乘法和除法指令格式:格式:MUL OPRD功能:字节:功能:字节:AX=AL*OPRD字:字:DX AX=AX*OPRD如果乘积结果的高半部分(字节相乘时为如果乘积结果的高半部分(字节相乘时为AH,字相乘时,字相乘时为为DX)不等于零,则标志)不等于零,则标志CF=1,OF=1;否则;否则CF=0,OF=0,对其它标志,该指令无定

34、义,对其它标志,该指令无定义所以,如果所以,如果CF=0,OF=0,表示,表示AH或或DX中的结果数为中的结果数为0。有符号数乘法指令有符号数乘法指令乘法指令乘法指令乘法指令乘法指令MULMUL和和和和IMULIMUL微机原理与接口微机原理与接口电子科技大学电子科技大学 例:假设(AL)=0B4H,(BL)=11H求执行MUL BL的乘积值 求执行IMUL BL 的乘积值无符号数:(AL)=0B4H=190D (BL)=11H=17D 190D 17D3060D3060D=0BF4H执行 MUL BL 后(AX)=0BF4HAH0 CF=OF=1有符号数:(AL)=0B4H=-76D (BL)

35、=11H=17D -76D 17D-1292D-1292D=FAF4H执行 IMUL BL 后(AX)=FAF4H(AH)不是符号扩展 CF=OF=10B4H=10110100B取补码=4CH =-76D-1292D=-10100001100B =FAF4H(补码)微机原理与接口微机原理与接口电子科技大学电子科技大学除法指令DIV(IDIV)格式:格式:DIV OPRD功能:字节:功能:字节:AX OPRD=AL AH字:字:DX AX OPRD=AX DX除法指令对标志位的影响无定义除法指令对标志位的影响无定义注意:如果除数为注意:如果除数为0,或者,或者8位数除时商超过位数除时商超过8位,

36、或者位,或者 16位除时商超过位除时商超过16位,则认为是溢出,引起位,则认为是溢出,引起0号中断号中断有符号数除法指令有符号数除法指令微机原理与接口微机原理与接口电子科技大学电子科技大学5.符号扩展指令 字节扩展指令字节扩展指令字节扩展指令字节扩展指令CBWCBW格式:格式:CBW功能:寄存器功能:寄存器AL中的符号扩展到寄存器中的符号扩展到寄存器AH。若。若AL 的最高有效位为的最高有效位为0,则,则AH=0,否则,否则AH=0FFH 字扩展指令字扩展指令字扩展指令字扩展指令CWDCWD格式:格式:CWD功能:寄存器功能:寄存器AX中的符号扩展到寄存器中的符号扩展到寄存器DX。若。若AX

37、的最高有效位为的最高有效位为0,则,则DX=0,否则,否则DX=0FFFFH微机原理与接口微机原理与接口电子科技大学电子科技大学例:计算表达式的值:例:计算表达式的值:(X*Y+Z1024)/75 假设其中的假设其中的X、Y、Z均为均为16位带符号数,分别放在名位带符号数,分别放在名为为XXX、YYY、ZZZ的变量单元中。的变量单元中。MOV AX,XXXIMUL YYY ;计算;计算X*Y(结果在结果在DX,AX中)中)MOV CX,AXMOV BX,DX ;积保存到;积保存到BX:CX中中MOV AX,ZZZCWD ;把;把AX扩展为扩展为32位(扩展到位(扩展到DX)ADD AX,CXA

38、DC DX,BXSUB AX,1024 ;计算差;计算差SBB DX,0 ;减借位;减借位MOV CX,75IDIV CX ;计算商和余数;计算商和余数结果商保存在结果商保存在AX中,余数保存在中,余数保存在DX中中X*Y的值的值DX:AX是是Z值值微机原理与接口微机原理与接口电子科技大学电子科技大学3.4 逻辑运算和位移指令1.逻辑逻辑“与与”指令指令AND格式:格式:AND OPRD1,OPRD2功能:两个操作数进行按位的逻辑功能:两个操作数进行按位的逻辑“与与”运算,结果送到运算,结果送到 目的操作数目的操作数OPRD1,CF=0,OF=0结果影响结果影响ZF、SF、PF例例1:1010

39、 1001 0101 1110 0000 1000ANDAND AL,ALCF=0OF=0例例2:3.4.1 逻辑运算指令逻辑运算指令微机原理与接口微机原理与接口电子科技大学电子科技大学2.2.逻辑逻辑“或或”指令指令OROR格式:格式:OR OPRD1,OPRD2功能:两个操作数进行按位的逻辑功能:两个操作数进行按位的逻辑“或或”运算,结果送到运算,结果送到 目的操作数目的操作数OPRD1,CF=0,OF=0结果影响结果影响ZF、SF、PF3.逻辑逻辑“非非”指令指令NOT格式:格式:NOT OPRD功能:把操作数功能:把操作数OPRD按位取反,结果送回按位取反,结果送回OPRD对标志没有影

40、响对标志没有影响微机原理与接口微机原理与接口电子科技大学电子科技大学4.4.逻辑逻辑“异或异或”指令指令XORXOR格式:格式:XOR OPRD1,OPRD2功能:两个操作数进行按位的逻辑功能:两个操作数进行按位的逻辑“异或异或”运算,结果送到运算,结果送到 目的操作数目的操作数OPRD1,CF=0,OF=0结果影响结果影响ZF、SF、PF5.逻辑测试指令逻辑测试指令TEST格式:格式:TEST OPRD1,OPRD2功能:两个操作数进行按位的逻辑功能:两个操作数进行按位的逻辑“与与”运算,结果运算,结果不送不送到到 目的操作数目的操作数OPRD1,仅仅影响标志位,仅仅影响标志位通常用于检测某

41、位是否为通常用于检测某位是否为1,但又不改变原来值的场合,但又不改变原来值的场合微机原理与接口微机原理与接口电子科技大学电子科技大学1、检查、检查AL中的中的D6位或位或D2位是否有一位为位是否有一位为1TEST AL,01000100B执行指令后,如果执行指令后,如果6、2位都为位都为0,ZF=1,否则,否则ZF=0TEST AL,44H例:例:2、要求屏蔽、要求屏蔽AL寄存器中的第寄存器中的第6位和第位和第4位位AND AL,0AFH 10101111B3、要求、要求AL寄存器中的第寄存器中的第0位和第位和第1位变反位变反XOR AL,03H 00000011B微机原理与接口微机原理与接口

42、电子科技大学电子科技大学3.4.2 移位指令1.1.算数逻辑移位指令算数逻辑移位指令算数逻辑移位指令算数逻辑移位指令 格式:格式:SAL OPRD,m ;算术左移指令;算术左移指令 SHL OPRD,m ;逻辑左移指令;逻辑左移指令 SAR OPRD,m ;算术右移指令;算术右移指令 SHR OPRD,m ;逻辑右移指令;逻辑右移指令功能:操作数左或右移功能:操作数左或右移m位位0CF高高 低低操作数操作数CF高高 低低算术右移算术右移SARCF高高 低低0逻辑右移逻辑右移SHRShift Arithmetic Left SHift logic Rightm为为1或为或为CL当要移多位时,移位

43、位数当要移多位时,移位位数需存放在需存放在CL寄存器中。寄存器中。微机原理与接口微机原理与接口电子科技大学电子科技大学2.循环移位指令循环移位指令ROL OPRD,m ;循环左移指令;循环左移指令ROR OPRD,m ;循环右移指令;循环右移指令RCL OPRD,m ;带进位循环左移指令;带进位循环左移指令RCR OPRD,m ;带进位循环右移指令;带进位循环右移指令格式:格式:功能:操作数左或右循环移功能:操作数左或右循环移m位,位,m是是 移位位数,为移位位数,为1或为或为CL,当要,当要 移多位时,移位位数需存放在移多位时,移位位数需存放在 CL寄存器中。寄存器中。CF高高 低低循环左移

44、指令循环左移指令ROLCF高高 低低循环右移指令循环右移指令RORCF高高 低低带进位循环左移指令带进位循环左移指令RCL高高 低低CF带进位循环右移指令带进位循环右移指令RCR只影响标志只影响标志CF和和OFRotate Right(lift)微机原理与接口微机原理与接口电子科技大学电子科技大学例:不用乘法指令,用移位指令编程实现例:不用乘法指令,用移位指令编程实现 AL寄寄 存器的内容乘以存器的内容乘以10(假设结果仍然是(假设结果仍然是8位)位)SAL AL,1 ;AL中的数左移中的数左移1位(位(2)MOV BL,ALMOV CL,2SAL AL,CL ;AL中的数再左移中的数再左移2

45、位(位(8)ADD AL,BL ;AL中的数中的数10微机原理与接口微机原理与接口电子科技大学电子科技大学3.5 串操作类指令字符串:字符的一个序列字符串:字符的一个序列字符串操作的几点说明:字符串操作的几点说明:由变址寄存器由变址寄存器SI指向源操作数(串)指向源操作数(串)由变址寄存器由变址寄存器DI指向目的操作数(串)指向目的操作数(串)规定源串放在当前数据段中,目的串放在当前附加段中规定源串放在当前数据段中,目的串放在当前附加段中即:即:DS:SI 指向源串指向源串 ES:DI 指向目的串指向目的串微机原理与接口微机原理与接口电子科技大学电子科技大学3.5.1 重复前缀1.1.重复前缀

46、重复前缀重复前缀重复前缀REPREP格式:格式:REP 串操作指令串操作指令功能:重复后面的串操作指令,(功能:重复后面的串操作指令,(CX)次)次REP 后面一般跟后面一般跟MOVS或或STOS2.2.重复前缀重复前缀重复前缀重复前缀REPZ/REPEREPZ/REPE格式:格式:REPZ 串操作指令串操作指令 或或 REPE 串操作指令串操作指令 功能:重复后面的串操作指令,每重复一次功能:重复后面的串操作指令,每重复一次CX1,重复一,重复一 直进行到直进行到CX为为0 或或串操作指令使零标志串操作指令使零标志ZF为为0 止止即:即:CX0 并且并且 ZF=1时,重复串操作指令时,重复串

47、操作指令微机原理与接口微机原理与接口电子科技大学电子科技大学3.5.1 重复前缀3.3.重复前缀重复前缀重复前缀重复前缀REPNZ/REPNEREPNZ/REPNE格式:格式:REPNZ 串操作指令串操作指令 或或 REPNE 串操作指令串操作指令 功能:重复后面的串操作指令,每重复一次功能:重复后面的串操作指令,每重复一次CX1,重复一,重复一 直进行到直进行到CX为为0 或或串操作指令使零标志串操作指令使零标志ZF为为1 止止即:即:CX0 并且并且 ZF=0时,重复串操作指令时,重复串操作指令微机原理与接口微机原理与接口电子科技大学电子科技大学3.5.2 字符串指令格式:格式:MOVSB

48、 或或 MOVSW功能:功能:MOVSB (DS:SI)(ES:DI),然后根据方向标志然后根据方向标志DF 确定确定SI、DI 增增 1 还是减还是减 1,若若DF=1,SI、DI自动减自动减1,若若DF=0,SI、DI自动加自动加1。在执行在执行MOVS前,必须确定方向,即前,必须确定方向,即DF置位或复位置位或复位MOVSW(DS:SI)(ES:DI),然后根据方向标志然后根据方向标志DF 确定确定SI、DI增增 2 还是减还是减 2,若若DF=1,SI、DI自动减自动减2,若若DF=0,SI、DI自动加自动加2。1.1.字符串传送指令字符串传送指令字符串传送指令字符串传送指令MOVSM

49、OVS微机原理与接口微机原理与接口电子科技大学电子科技大学2.2.字符串存指令字符串存指令 STOSSTOS格式:格式:STOSB 或或 STOSW功能:把累加器的值存到内存中,如果使用了重复前缀功能:把累加器的值存到内存中,如果使用了重复前缀 REP,即对某个区域填充累加器的内容。,即对某个区域填充累加器的内容。STOSB(字节存)(字节存)AL(ES:DI)并根据并根据DF执行执行DI=DI1注意:字符串存指令注意:字符串存指令不影响标志不影响标志STOSW(字存)(字存)AX(ES:DI)并根据并根据DF执行执行DI=DI1微机原理与接口微机原理与接口电子科技大学电子科技大学3.3.字符

50、串取指令字符串取指令LODSLODS格式:格式:LODSB 或或LODSW功能:功能:把内存中的值取到累加器把内存中的值取到累加器LODSB(取字节)(取字节)(DS:SI)AL 并根据并根据DF 执行执行DI=DI1 注意:字符串取指令注意:字符串取指令不影响标志不影响标志LODSW(取字)(取字)(DS:SI)AX 并根据并根据DF 执行执行DI=DI2 微机原理与接口微机原理与接口电子科技大学电子科技大学4.4.字符串扫描指令字符串扫描指令 SCASSCAS格式:格式:SCASB 或或SCASWSCASB(字符串字节扫描)(字符串字节扫描)AL(ES:DI)影响有关标志位,影响有关标志位

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com