【教学课件】第3章80x86汇编语言程序设计(上)16位汇编版本.ppt

上传人:wuy****n92 文档编号:69867174 上传时间:2023-01-10 格式:PPT 页数:173 大小:777.50KB
返回 下载 相关 举报
【教学课件】第3章80x86汇编语言程序设计(上)16位汇编版本.ppt_第1页
第1页 / 共173页
【教学课件】第3章80x86汇编语言程序设计(上)16位汇编版本.ppt_第2页
第2页 / 共173页
点击查看更多>>
资源描述

《【教学课件】第3章80x86汇编语言程序设计(上)16位汇编版本.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第3章80x86汇编语言程序设计(上)16位汇编版本.ppt(173页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、现代微机原理与接口技术现代微机原理与接口技术http:/http:/第第3章章 80 x86汇编语言程序设计汇编语言程序设计(上上)16位汇编版本位汇编版本1现代微机原理与接口技术现代微机原理与接口技术http:/http:/有效地址有效地址有效地址有效地址(effective address EAeffective address EA)操作数在段内的偏移地址操作数在段内的偏移地址操作数在段内的偏移地址操作数在段内的偏移地址寻址方式寻址方式寻址方式寻址方式 产生有效地址的方法产生有效地址的方法产生有效地址的方法产生有效地址的方法80 x86的操作数寻址方式有:的操作数寻址方式有:1、立即寻址

2、、立即寻址2、寄存器寻址、寄存器寻址3、存储器寻址、存储器寻址4、端口寻址、端口寻址3.1 80 x86的寻址方式的寻址方式3.1.1 操作数寻址操作数寻址2现代微机原理与接口技术现代微机原理与接口技术http:/http:/1、立即寻址立即寻址 操作数以常量形式直接放在指令中,紧跟在操作码之后操作数以常量形式直接放在指令中,紧跟在操作码之后操作数以常量形式直接放在指令中,紧跟在操作码之后操作数以常量形式直接放在指令中,紧跟在操作码之后 机器码存放形式如下:机器码存放形式如下:立即寻址示例立即寻址示例 MOV AH,-40-40 ;-40AH MOV AX,34D8H 34D8H ;34HAH

3、,D8HAL MOV AX,-40-40 ;0FFD8H(-40)AX 我们首先讨论两种与存储器无关的寻址方式:我们首先讨论两种与存储器无关的寻址方式:我们首先讨论两种与存储器无关的寻址方式:我们首先讨论两种与存储器无关的寻址方式:OPD8操作码操作码8位操作数位操作数低地址低地址高地址高地址OP操作码操作码D16高高8位位D16低低8位位16位操作数位操作数代码段代码段代码段代码段3现代微机原理与接口技术现代微机原理与接口技术http:/http:/2、寄存器寻址寄存器寻址 操作数存放在某个寄存器中,指令指定寄存器号操作数存放在某个寄存器中,指令指定寄存器号操作数存放在某个寄存器中,指令指定

4、寄存器号操作数存放在某个寄存器中,指令指定寄存器号 寄存器号寄存器号操作数操作数寄存器寻址示例寄存器寻址示例 MOV AH,BLAH,BL ;(BL)-AH MOV DS,AXDS,AX ;(AX)-DS MOV SI,AXSI,AX ;(AX)-SI说明:立即寻址和寄存器寻址方式不需访问存储器说明:立即寻址和寄存器寻址方式不需访问存储器说明:立即寻址和寄存器寻址方式不需访问存储器说明:立即寻址和寄存器寻址方式不需访问存储器即可得到操作数,速度快即可得到操作数,速度快即可得到操作数,速度快即可得到操作数,速度快指令指令寄存器寄存器4现代微机原理与接口技术现代微机原理与接口技术http:/htt

5、p:/有效地址有效地址(EA)的的4种组成成分:种组成成分:位移量位移量位移量位移量(displacement)存放在指令中的存放在指令中的8位、位、16位或位或32位的数,是一个地址位的数,是一个地址 有效地址的计算:有效地址的计算:EA=EA=基址基址基址基址+(变址(变址(变址(变址*比例因子比例因子比例因子比例因子)+位移量位移量位移量位移量 比例因子比例因子比例因子比例因子(scale factor)3232位汇编才有位汇编才有位汇编才有位汇编才有 其值可为其值可为1,2,4或或8,386及其后继机型新增加的及其后继机型新增加的 变址变址变址变址(index)存放在变址寄存器中的内容

6、,用于访问数组的某个元素存放在变址寄存器中的内容,用于访问数组的某个元素 基址基址基址基址(base)存放在基址寄存器中的内容,用于指向数组的首地址存放在基址寄存器中的内容,用于指向数组的首地址下面我们来讨论余下的几种与存储器有关的寻址方式,下面我们来讨论余下的几种与存储器有关的寻址方式,下面我们来讨论余下的几种与存储器有关的寻址方式,下面我们来讨论余下的几种与存储器有关的寻址方式,先介绍几个概念:先介绍几个概念:先介绍几个概念:先介绍几个概念:5现代微机原理与接口技术现代微机原理与接口技术http:/http:/16/32位寻址时有效地址四种成分的组成位寻址时有效地址四种成分的组成四种成分四

7、种成分16位寻址位寻址3232位寻址位寻址位寻址位寻址位移量位移量0,8,16位位0,8,32位位基址寄存器基址寄存器BX,BP任何任何32位通用寄存器位通用寄存器(包括包括ESP)变址寄存器变址寄存器SI,DI除除ESP以外的以外的32位通用寄存器位通用寄存器比例因子比例因子 无无1,2,4,86现代微机原理与接口技术现代微机原理与接口技术http:/http:/默认段选择规则默认段选择规则访存类型访存类型 所用段及寄存器所用段及寄存器缺省选择规则缺省选择规则指令指令代码段代码段 CS用于取指用于取指堆栈堆栈堆栈段堆栈段 SSn所有的堆栈的进栈和出栈所有的堆栈的进栈和出栈n任何用任何用ESP

8、或或EBP或或BP作为基址寄存器的访存作为基址寄存器的访存目的串目的串附加数据段附加数据段 ES串处理指令的目的串串处理指令的目的串局部数据局部数据数据段数据段 DS除相对于堆栈以及串处理的除相对于堆栈以及串处理的目的串以外的所有数据访问目的串以外的所有数据访问7现代微机原理与接口技术现代微机原理与接口技术http:/http:/不允许使用段超越前缀的情况不允许使用段超越前缀的情况不允许使用段超越前缀的情况不允许使用段超越前缀的情况:(1)串操作指令的目的串必须用)串操作指令的目的串必须用ES段段(2)PUSH指令的目的和指令的目的和POP指令的源必须用指令的源必须用SS段段(3)程序的指令必

9、须存放在)程序的指令必须存放在CS段段访问非默认段数据的方法访问非默认段数据的方法段超越段超越数据的存放比较灵活,除了放在默认的数据的存放比较灵活,除了放在默认的DS段,还可以段,还可以存放在别的段,此时访问他们需要使用段超越前缀,存放在别的段,此时访问他们需要使用段超越前缀,可用的段超越前缀有可用的段超越前缀有CS:,DS:,ES:,SS:,FS:,GS:。段超越举例:段超越举例:段超越举例:段超越举例:MOV AX,10H ;DSMOV AX,10H ;DS段段段段10H10H处的一个字的数据赋给处的一个字的数据赋给处的一个字的数据赋给处的一个字的数据赋给AXAX寄存器寄存器寄存器寄存器M

10、OV AX,MOV AX,ES:ES:10H;10H;ESES段段段段10H10H处的一个字的数据赋给处的一个字的数据赋给处的一个字的数据赋给处的一个字的数据赋给AXAX寄存器寄存器寄存器寄存器8现代微机原理与接口技术现代微机原理与接口技术http:/http:/3、直接寻址、直接寻址 操作数地址的偏移量(操作数地址的偏移量(操作数地址的偏移量(操作数地址的偏移量(EAEA)在指令中)在指令中)在指令中)在指令中物理地址物理地址物理地址物理地址=指定段的段基地址指定段的段基地址指定段的段基地址指定段的段基地址16+16+偏移量偏移量偏移量偏移量(EA)(EA)系统默认,操作数在数据段系统默认,

11、操作数在数据段系统默认,操作数在数据段系统默认,操作数在数据段段基地址段基地址EA操作数操作数+指令指令存储器存储器MOV AX,2000H ;立即寻址立即寻址MOV AX,2000H ;直接寻址直接寻址9现代微机原理与接口技术现代微机原理与接口技术http:/http:/直接寻址示例直接寻址示例1 MOV AX,1000H1000H 物理地址物理地址 设设(DS)=10A0H 代码段代码段 +OP 00H 10H 数据段数据段 11A00H 30H 50H 50H 30H AX(本章中图示存储器地址从上到下递增)本章中图示存储器地址从上到下递增)低地址低地址10A00H1000H11A00H

12、10A0H1000H1000H30H50H11A00H10现代微机原理与接口技术现代微机原理与接口技术http:/http:/直接寻址示例直接寻址示例2MOV BL,ES:0100HES:0100H 物理地址物理地址 设设(ES)=3000H 30000H (DS)=2000H +0100H 30100H 4B 00 BL4B在汇编语言指令中,可以用在汇编语言指令中,可以用符号地址符号地址符号地址符号地址代替数值地址代替数值地址如:如:MOV AX,BUFFBUFF或或 MOV AX,BUFFBUFF其中其中其中其中BUFFBUFF为存放数据单元的符号地址。为存放数据单元的符号地址。为存放数据

13、单元的符号地址。为存放数据单元的符号地址。3000H0100H0100H30100H30100H4B11现代微机原理与接口技术现代微机原理与接口技术http:/http:/4、寄存器间接寻址寄存器间接寻址 操作数在存储器中,操作数地址的偏移量(操作数在存储器中,操作数地址的偏移量(操作数在存储器中,操作数地址的偏移量(操作数在存储器中,操作数地址的偏移量(EAEA)在)在)在)在寄存器中寄存器中寄存器中寄存器中基址或变址寄存器号基址或变址寄存器号基址或变址寄存器号基址或变址寄存器号EA操作数操作数+存储器存储器指令指令寄存器寄存器段基地址段基地址寄存器间接寻址示例寄存器间接寻址示例 MOV A

14、L,BXBX MOV AX,CS:CS:SISI MOV BPBP,AH 12现代微机原理与接口技术现代微机原理与接口技术http:/http:/MOV AH,BPBPMOV BX,SI SIMOV CX,SI设设(SS)=1000H,(DS)=2000H,(BP)=0B10H,(SI)=032AH 物理地址物理地址 物理地址物理地址 10000H 20000H +0B10H +032AH 40H 00H 3EH 46H40H AHAH10B10H2032AH463EH BXBX2032BH10B11H SISI032AH032AH CXCX1000H2000H0B10H032AH10B10H

15、10B10H2032AH2032AH40H3EH46032AH13现代微机原理与接口技术现代微机原理与接口技术http:/http:/5、基址寻址、基址寻址 操作数的有效地址是基址寄存器的内容加上指令中操作数的有效地址是基址寄存器的内容加上指令中操作数的有效地址是基址寄存器的内容加上指令中操作数的有效地址是基址寄存器的内容加上指令中指定的位移量指定的位移量指定的位移量指定的位移量 基址寄存器号基址寄存器号基址寄存器号基址寄存器号 位移量位移量位移量位移量地址地址+操作数操作数指指 令令基址寄存器基址寄存器段基地址段基地址存储器存储器EA可用于数组元素的访问可用于数组元素的访问可用于数组元素的访

16、问可用于数组元素的访问14现代微机原理与接口技术现代微机原理与接口技术http:/http:/基址寻址示例基址寻址示例 MOV AX,3000HBX (3000HBX (或或或或BX+3000H)BX+3000H)MOV AX,COUNTBXCOUNTBX ;COUNT;COUNT是符号地址是符号地址是符号地址是符号地址 (或(或 MOV AX,COUNT+BXCOUNT+BX)若若(DS)=3000H,(BX)=2000H,COUNT=4000H 30000H 2000H +4000H 1234H36000H 34H 12HAX3000H2000H4000H36000H36000H34H12

17、15现代微机原理与接口技术现代微机原理与接口技术http:/http:/6、变址寻址、变址寻址 变址寄存器号变址寄存器号变址寄存器号变址寄存器号 位移量位移量位移量位移量地址地址+操作数操作数指指 令令变址寄存器变址寄存器段基地址段基地址存储器存储器EA操作数的有效地址是变址寄存器的内容加上指令中指操作数的有效地址是变址寄存器的内容加上指令中指操作数的有效地址是变址寄存器的内容加上指令中指操作数的有效地址是变址寄存器的内容加上指令中指定的位移量定的位移量定的位移量定的位移量16现代微机原理与接口技术现代微机原理与接口技术http:/http:/变址寻址示例变址寻址示例 MOV CX,6020H

18、SI (6020HSI (或或或或SI+6020H)SI+6020H)MOV DX,COUNTSICOUNTSI ;COUNT是符号地址是符号地址 (或(或 MOV AX,COUNT+SICOUNT+SI)若若(DS)=3000H,(SI)=2000H,COUNT=1000H 30000H 2000H +1000H 6734H33000H 34H 67HDX3000H2000H1000H33000H33000H34H6717现代微机原理与接口技术现代微机原理与接口技术http:/http:/7、基址变址寻址、基址变址寻址1)无位移量的基址变址寻址)无位移量的基址变址寻址 操作数的有效地址是一个

19、基址寄存器和一个变址寄操作数的有效地址是一个基址寄存器和一个变址寄操作数的有效地址是一个基址寄存器和一个变址寄操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和存器的内容之和存器的内容之和存器的内容之和基址寄存器基址寄存器基址寄存器基址寄存器变址寄存器变址寄存器变址寄存器变址寄存器变址值变址值基址值基址值+操作数操作数指指 令令变址寄存器变址寄存器基址寄存器基址寄存器段基地址段基地址存储器存储器EA18现代微机原理与接口技术现代微机原理与接口技术http:/http:/无位移量基址变址寻址示例无位移量基址变址寻址示例 MOV AX,BX+DIBX+DI MOV AX,BXDIBXDI

20、若若(DS)=2100H,(BX)=0158H,(DI)=10A5H,物理地址物理地址 21000H 0158H+10A5H 221FDH 34H 12H1234HAX2100H0158H10A5H221FDH221FDH34H1219现代微机原理与接口技术现代微机原理与接口技术http:/http:/2)基址变址相对寻址)基址变址相对寻址 操作数的有效地址是一个基址寄存器的内容、操作数的有效地址是一个基址寄存器的内容、操作数的有效地址是一个基址寄存器的内容、操作数的有效地址是一个基址寄存器的内容、一个变址寄存器的内容及位移量之和一个变址寄存器的内容及位移量之和一个变址寄存器的内容及位移量之和

21、一个变址寄存器的内容及位移量之和 基址寄存器基址寄存器基址寄存器基址寄存器变址寄存器变址寄存器变址寄存器变址寄存器位移量位移量位移量位移量变址值变址值基址值基址值+操作数操作数指指 令令变址寄存器变址寄存器基址寄存器基址寄存器段基地址段基地址存储器存储器EA20现代微机原理与接口技术现代微机原理与接口技术http:/http:/基址变址相对寻址示例基址变址相对寻址示例 MOV AX,MASKBX+SIMASKBX+SI;MASKMASK是符号地址是符号地址是符号地址是符号地址 若若(DS)=3000H,(BX)=2000H,(SI)=1000H,MASK=0250H 物理地址物理地址 3000

22、0H 2000H 1000H +0250H 33250H 20H 43H 4320H AX3000H2000H1000H0250H33250H33250H20H4321现代微机原理与接口技术现代微机原理与接口技术http:/http:/8、端口寻址、端口寻址1)直接寻址()直接寻址(I/O Port Direct Addressing)直接寻址是使用一字节立即数寻址,因此直接寻址是使用一字节立即数寻址,因此直接寻址是使用一字节立即数寻址,因此直接寻址是使用一字节立即数寻址,因此I/OI/O端口的端口的端口的端口的寻址范围为寻址范围为寻址范围为寻址范围为00HFFH00HFFH,最多为,最多为,

23、最多为,最多为256256个。个。个。个。IN IN AL,20HAL,20H;从;从20H端口读入端口读入1个字节个字节OUT 60H,AXOUT 60H,AX;将;将AX中中1个字送到个字送到60H端口端口2)间接寻址()间接寻址(I/O Port Indirect Addressing)间接寻址由间接寻址由间接寻址由间接寻址由DXDX寄存器间接给出寄存器间接给出寄存器间接给出寄存器间接给出I/OI/O端口地址,为两个端口地址,为两个端口地址,为两个端口地址,为两个字节,所以最多可寻址字节,所以最多可寻址字节,所以最多可寻址字节,所以最多可寻址2 21616=64K=64K个端口地址。个端

24、口地址。个端口地址。个端口地址。MOVDX,3FCHININAL,DXAL,DX;从;从3FCH端口读入端口读入1个字节个字节22现代微机原理与接口技术现代微机原理与接口技术http:/http:/3.1.2 转移操作寻址转移操作寻址1.段内直接寻址段内直接寻址2.转向的有效地址是当前转向的有效地址是当前转向的有效地址是当前转向的有效地址是当前IP/EIPIP/EIP寄存器的内容和指令寄存器的内容和指令寄存器的内容和指令寄存器的内容和指令中指定的位移量之和。位移量在条件转移以及短转移中指定的位移量之和。位移量在条件转移以及短转移中指定的位移量之和。位移量在条件转移以及短转移中指定的位移量之和。

25、位移量在条件转移以及短转移中只有中只有中只有中只有8 8位,其它情况下为位,其它情况下为位,其它情况下为位,其它情况下为1616位。位。位。位。偏移量偏移量机器机器码码程序程序00000405PROG_S:ADD AL,05H000290 NOP0003EBFB JMP SHORT PROG_S000590 NOP23现代微机原理与接口技术现代微机原理与接口技术http:/http:/2.段内间接寻址段内间接寻址转向有效地址是一个寄存器或是一个存储单元的内转向有效地址是一个寄存器或是一个存储单元的内转向有效地址是一个寄存器或是一个存储单元的内转向有效地址是一个寄存器或是一个存储单元的内容容容容

26、 。所得到的转向的有效地址用来取代。所得到的转向的有效地址用来取代。所得到的转向的有效地址用来取代。所得到的转向的有效地址用来取代IP/EIPIP/EIP寄存器寄存器寄存器寄存器的内容。的内容。的内容。的内容。设:(设:(DS)=2000H,(,(BX)=1000H,变量,变量TABLE的有效地址为的有效地址为1000H,(,(21000H)=0040H,(22000H)=5678H,则下列三条指令分别执行后结果,则下列三条指令分别执行后结果如下:如下:JMP BXJMP BX;执行后执行后执行后执行后IP=1000HIP=1000H JMP BX JMP BX ;执行后执行后执行后执行后IP

27、=0040HIP=0040H JMP TABLEBX JMP TABLEBX;执行后执行后执行后执行后IP=5678HIP=5678H24现代微机原理与接口技术现代微机原理与接口技术http:/http:/3.段间直接寻址段间直接寻址指令中直接提供了转向段地址和偏移地址,用指令指令中直接提供了转向段地址和偏移地址,用指令指令中直接提供了转向段地址和偏移地址,用指令指令中直接提供了转向段地址和偏移地址,用指令中提供的偏移地址取代中提供的偏移地址取代中提供的偏移地址取代中提供的偏移地址取代IP/EIPIP/EIP寄存器,用指令中提供寄存器,用指令中提供寄存器,用指令中提供寄存器,用指令中提供的段地

28、址取代的段地址取代的段地址取代的段地址取代CSCS寄存器的内容就完成从一个段到另一寄存器的内容就完成从一个段到另一寄存器的内容就完成从一个段到另一寄存器的内容就完成从一个段到另一个段的转移操作。个段的转移操作。个段的转移操作。个段的转移操作。JMP FAR PTR NEXT_PROJMP FAR PTR NEXT_PRO4.段间间接寻址段间间接寻址用存储器中的相继字的内容来取代用存储器中的相继字的内容来取代用存储器中的相继字的内容来取代用存储器中的相继字的内容来取代IP/EIPIP/EIP和和和和CSCS寄存器寄存器寄存器寄存器中的原始内容以达到段间转移的目的。中的原始内容以达到段间转移的目的

29、。中的原始内容以达到段间转移的目的。中的原始内容以达到段间转移的目的。设:设:(DS)=2500H,(SI)=1300H,(26300H)=4500H,(26302H)=32F0H,则执行以下指令后结果如下:则执行以下指令后结果如下:JMP DWORD PTR SIJMP DWORD PTR SI;执行后;执行后;执行后;执行后CS=32F0HCS=32F0H,IP=4500HIP=4500H25现代微机原理与接口技术现代微机原理与接口技术http:/http:/3.2 80 x86的指令系统的指令系统n数据传送指令数据传送指令n算术运算指令算术运算指令n逻辑运算与移位指令逻辑运算与移位指令n

30、串操作指令串操作指令n控制转移指令控制转移指令n处理器控制指令处理器控制指令26现代微机原理与接口技术现代微机原理与接口技术http:/http:/数据传送指令数据传送指令通用数据传送指令通用数据传送指令地址传送指令地址传送指令标志寄存器传送指令标志寄存器传送指令 输入输出指令输入输出指令类型转换指令类型转换指令27现代微机原理与接口技术现代微机原理与接口技术http:/http:/PUSHA/PUSHADPUSHA/PUSHAD (push all registers)(push all registers)所有寄存器进栈所有寄存器进栈所有寄存器进栈所有寄存器进栈POPA/POPADPOPA

31、/POPAD (pop all registers)(pop all registers)所有寄存器出栈所有寄存器出栈所有寄存器出栈所有寄存器出栈1、通用数据传送指令、通用数据传送指令MOV(move)MOV(move)传送传送传送传送MOVSX(move with sigh-extend)MOVSX(move with sigh-extend)带符号扩展传送带符号扩展传送带符号扩展传送带符号扩展传送MOVZX(move with zero-extend)MOVZX(move with zero-extend)带零扩展传送带零扩展传送带零扩展传送带零扩展传送PUSH(push onto the

32、 stack)进栈进栈POP(pop from the stack)出栈出栈XCHG(exchange)交换交换XLAT(translate)换码换码28现代微机原理与接口技术现代微机原理与接口技术http:/http:/MOV 传送指令传送指令格式:格式:格式:格式:MOV DST,SRCMOV DST,SRC操作:操作:操作:操作:DST-(SRC)DST-(SRC)即把源操作数的内容送入目的操作数即把源操作数的内容送入目的操作数说明:说明:1)可以进行)可以进行8位、位、16位或位或3232位位位位数据的传送数据的传送 2)SRC可为可为立即数立即数立即数立即数、寄存器、存储器操作数、寄

33、存器、存储器操作数 3)DST可为寄存器、存储器操作数可为寄存器、存储器操作数 4)该指令不影响任何状态标志位)该指令不影响任何状态标志位存储器存储器段寄存器段寄存器CS DS SS ES立即数立即数通用寄存器通用寄存器AX BX CX DXBP SP SI DI29现代微机原理与接口技术现代微机原理与接口技术http:/http:/MOV指令示例指令示例1MOV AX,BX+DI MOV AX,BX+DI ;存储器操作数;存储器操作数;存储器操作数;存储器操作数MOV AX,ARRAYSI MOV AX,ARRAYSI ;传送到寄存器;传送到寄存器;传送到寄存器;传送到寄存器MOV AX,0

34、B00H MOV AX,0B00H ;立即数传送到寄存器;立即数传送到寄存器;立即数传送到寄存器;立即数传送到寄存器MOV CL,10000000BMOV CL,10000000BMOV VALUE,100H ;立即数传送到存储单元;立即数传送到存储单元MOV ES:BX,4BHMOV BX,CX MOV BX,CX ;寄存器内容传送到存储器;寄存器内容传送到存储器;寄存器内容传送到存储器;寄存器内容传送到存储器MOV BUFF BPDI,AXMOV BUFF BPDI,AXMOV AL,BL ;寄存器之间传送;寄存器之间传送MOV BP,SI30现代微机原理与接口技术现代微机原理与接口技术h

35、ttp:/http:/MOV指令示例指令示例2 MOV AX,ARRAYSIMOV AX,ARRAYSI设设(DS)=3000H,(SI)=2000H,ARRAY=8000H 物理地址物理地址 30000H 2000H +8000H 3A000H 3A000H 45H 0BH0B45H AX31现代微机原理与接口技术现代微机原理与接口技术http:/http:/MOV指令注意事项:指令注意事项:(1)(1)两个操作数长度必须一致两个操作数长度必须一致两个操作数长度必须一致两个操作数长度必须一致 MOV AL,BX ;不合法;不合法例外:源是例外:源是例外:源是例外:源是1616进制立即数,位数

36、小于目的操作数时,进制立即数,位数小于目的操作数时,进制立即数,位数小于目的操作数时,进制立即数,位数小于目的操作数时,高位按高位按高位按高位按0 0扩展,源是扩展,源是扩展,源是扩展,源是1010进制立即数,位数小于目的操进制立即数,位数小于目的操进制立即数,位数小于目的操进制立即数,位数小于目的操作数时,高位按符号位扩展作数时,高位按符号位扩展作数时,高位按符号位扩展作数时,高位按符号位扩展 MOV AX,0D8H 执行后,执行后,(AX)=00D8H MOV AX,-40 执行后,执行后,(AX)=FFD8H(2)(2)不允许用立即数为段寄存器赋值不允许用立即数为段寄存器赋值不允许用立即

37、数为段寄存器赋值不允许用立即数为段寄存器赋值 例:例:MOV ES,10A0H ;不合法;不合法32现代微机原理与接口技术现代微机原理与接口技术http:/http:/(3)(3)不允许两个操作数均是存储器操作数不允许两个操作数均是存储器操作数不允许两个操作数均是存储器操作数不允许两个操作数均是存储器操作数 MOV X,Y ;不合法;不合法 可以通过一个寄存器传送:可以通过一个寄存器传送:MOV AX,Y MOV X,AX(4)(4)不允许两个操作数均为段寄存器不允许两个操作数均为段寄存器不允许两个操作数均为段寄存器不允许两个操作数均为段寄存器 MOV ES,DS ;不合法;不合法(5)(5)

38、不允许不允许不允许不允许CSCS、IPIP和立即数做目标操作数和立即数做目标操作数和立即数做目标操作数和立即数做目标操作数 MOV CS,AX ;不合法;不合法 MOV 100H,AX ;不合法;不合法 MOV IP,BX;不合法;不合法33现代微机原理与接口技术现代微机原理与接口技术http:/http:/PUSH 压栈指令压栈指令格式:格式:格式:格式:PUSH SRCPUSH SRC操作:操作:操作:操作:16 16位指令:位指令:位指令:位指令:SP-(SP)-2 SP-(SP)-2 (SP)+1,(SP)-(SRC)(SP)+1,(SP)-(SRC)3232位指令:位指令:位指令:位

39、指令:ESP ESP(ESP)-4(ESP)-4 (ESP)+3,(ESP)+2,(ESP)+1,(ESP)(ESP)+3,(ESP)+2,(ESP)+1,(ESP)(SRC)(SRC)说明:说明:1)源操作数可以是寄存器或存储器操作数源操作数可以是寄存器或存储器操作数 2)必须以字或必须以字或双字双字双字双字为单位操作为单位操作 3)32位指令允许位指令允许SRC是是16位或位或32位立即数,位立即数,也容许是也容许是32位寄存器和存储器操作数位寄存器和存储器操作数举例:举例:PUSH AX PUSH DATBXSI PUSH 1234HPUSH 1234H PUSH 87654321H P

40、USH 87654321H PUSH EAX PUSH EAX34现代微机原理与接口技术现代微机原理与接口技术http:/http:/压栈指令示例压栈指令示例 PUSH AXPUSH AX 执行前执行前 AX AX 25H25H 31H 31H SP 52500H 3125H3125H低地址低地址低地址低地址进栈方向进栈方向SP3125H524FEH524FFH52500H执行后执行后35现代微机原理与接口技术现代微机原理与接口技术http:/http:/POP 出栈指令出栈指令格式:格式:格式:格式:POP DSTPOP DST操作:操作:操作:操作:16 16位指令:位指令:位指令:位指令

41、:DST-(SP)+1,(SP)DST-(SP)+1,(SP)SP-(SP)+2 SP-(SP)+2 3232位指令:位指令:位指令:位指令:DST DST(ESP)+3,(ESP)+2,(ESP)+1,(ESP)(ESP)+3,(ESP)+2,(ESP)+1,(ESP)(ESP)(ESP)(ESP)+4(ESP)+4举例:举例:POP AX POP DATBXSI POP DS POP ECXPOP ECX36现代微机原理与接口技术现代微机原理与接口技术http:/http:/出栈指令示例出栈指令示例 POP BXPOP BX 执行前执行前 执行后执行后 BX BX 75C1H 低地址低地址

42、 低地址低地址 SP 6Bh 51000H 6Bh 51000H 48h 1H 48h 1H 9Ah 2H 9Ah 2H 28h 3H 28h 3H出栈方向出栈方向48h48h 6Bh6Bh48h48h6BhSP37现代微机原理与接口技术现代微机原理与接口技术http:/http:/PUSHA/PUSHAD 所有寄存器进栈所有寄存器进栈格式:格式:格式:格式:PUSHAPUSHA PUSHAD PUSHADPUSHADPUSHAD:(386386及其后继机型及其后继机型及其后继机型及其后继机型,3232位汇编位汇编位汇编位汇编)32 32位通用寄存器依次进栈,次序为:位通用寄存器依次进栈,次序

43、为:位通用寄存器依次进栈,次序为:位通用寄存器依次进栈,次序为:EAXEAX,ECXECX,EDX EDX,EBXEBX,指令执行前的,指令执行前的,指令执行前的,指令执行前的ESPESP,EBPEBP,ESIESI,EDIEDI 指令执行后指令执行后指令执行后指令执行后 ESP ESP(ESP)-32(ESP)-32 仍指向栈顶仍指向栈顶仍指向栈顶仍指向栈顶PUSHAPUSHA:(286286及其后继机型)及其后继机型)及其后继机型)及其后继机型)16 16位通用寄存器依次进栈,次序为:位通用寄存器依次进栈,次序为:位通用寄存器依次进栈,次序为:位通用寄存器依次进栈,次序为:AX AX,CX

44、,CX,DX DX,BXBX,指令执行前的,指令执行前的,指令执行前的,指令执行前的SPSP,BPBP,SISI,DIDI 指令执行后指令执行后指令执行后指令执行后 SP SP(SP)-16(SP)-16 仍指向栈顶仍指向栈顶仍指向栈顶仍指向栈顶操作:操作:38现代微机原理与接口技术现代微机原理与接口技术http:/http:/PUSHA指令示例指令示例(DI)-16(SI)-14(BP)-12(SP)原原 -10(BX)-8(DX)-6(CX)-4(AX)-2 0(SP)原原(SP)执行前执行前执行后执行后39现代微机原理与接口技术现代微机原理与接口技术http:/http:/POPA/PO

45、PAD 所有寄存器出栈所有寄存器出栈格式:格式:格式:格式:POPAPOPA POPAD POPADPOPADPOPAD:(386386及其后继机型及其后继机型及其后继机型及其后继机型,32,32位汇编位汇编位汇编位汇编 )32 32位通用寄存器依次出栈,次序为:位通用寄存器依次出栈,次序为:位通用寄存器依次出栈,次序为:位通用寄存器依次出栈,次序为:EDIEDI,ESIESI,EBP EBP,ESPESP,EBXEBX,EDXEDX,ECX ECX,EAX EAX 指令执行后指令执行后指令执行后指令执行后 ESP ESP(ESP)+32(ESP)+32 仍指向栈顶仍指向栈顶仍指向栈顶仍指向栈

46、顶POPAPOPA:(286286及其后继机型)及其后继机型)及其后继机型)及其后继机型)16 16位通用寄存器依次出栈,次序为:位通用寄存器依次出栈,次序为:位通用寄存器依次出栈,次序为:位通用寄存器依次出栈,次序为:DI DI,SISI,BPBP,SPSP,BXBX,DXDX,CX CX,AX AX 指令执行后指令执行后指令执行后指令执行后 SP SP(SP)+16(SP)+16 仍指向栈顶仍指向栈顶仍指向栈顶仍指向栈顶操作:操作:40现代微机原理与接口技术现代微机原理与接口技术http:/http:/XCHG 交换指令交换指令格式:格式:格式:格式:XCHG OPR1,OPR2XCHG

47、OPR1,OPR2操作:操作:操作:操作:(OPR1)(OPR2)(OPR1)(OPR2)说明:说明:1)操作数不允许为段寄存器)操作数不允许为段寄存器 2)两个操作数长度必须相同)两个操作数长度必须相同 3)本指令不影响状态标志位)本指令不影响状态标志位 4)两个操作数不能同时为存储器操作数)两个操作数不能同时为存储器操作数如:如:XCHG AX,BXAX,BX ;寄存器之间交换;寄存器之间交换 XCHG BX,BP+DI ;寄存器与存储器之间交换;寄存器与存储器之间交换 XCHG SI,DX41现代微机原理与接口技术现代微机原理与接口技术http:/http:/交换指令示例交换指令示例 X

48、CHG DX,DATABPXCHG DX,DATABP设设(SS)=5000H,(BP)=0400H,DATA=1800H 物理地址物理地址=5000H16+0400H+1800H=51C00H 执行前执行前 执行后执行后 DX DX 37CDH 51C00H 42H 51C00H 1H 6DH 1H CDH37H6D42H42现代微机原理与接口技术现代微机原理与接口技术http:/http:/XLAT查表指令(换码指令)查表指令(换码指令)格式:格式:格式:格式:XLAT TABLE XLAT TABLE 或或或或 XLAT XLAT操作:操作:操作:操作:AL-(BX)+(AL)AL-(B

49、X)+(AL)或或或或 ALAL(EBX)+(AL)(EBX)+(AL)将将将将ALAL中的当前内容转换为表中某一种代码。执中的当前内容转换为表中某一种代码。执中的当前内容转换为表中某一种代码。执中的当前内容转换为表中某一种代码。执行前一定要将表行前一定要将表行前一定要将表行前一定要将表(TABLE)(TABLE)的的的的EAEA赋给赋给赋给赋给BXBX(或或或或EBX)EBX)寄存器,寄存器,寄存器,寄存器,将代码在表中距首址的偏移放在将代码在表中距首址的偏移放在将代码在表中距首址的偏移放在将代码在表中距首址的偏移放在ALAL寄存器中。寄存器中。寄存器中。寄存器中。XLAT指令示例指令示例

50、TABLE 30H LEA BX,TABLE +1 31H ;表首址给;表首址给;表首址给;表首址给BXBX +2 32H MOV AL,4 +3 33H ;待转换内容到;待转换内容到;待转换内容到;待转换内容到ALAL +4 34H XLATXLAT +5 35H +6 36H +7 37H 34HAL43现代微机原理与接口技术现代微机原理与接口技术http:/http:/LDS(load DS with pointer)指针送寄存器和指针送寄存器和DS LES(load ES with pointer)指针送寄存器和指针送寄存器和ES LFS(load FS with pointer)指针

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

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

本站为文档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