微机原理第04章(寻址方式及传送指令)_第1页
微机原理第04章(寻址方式及传送指令)_第2页
微机原理第04章(寻址方式及传送指令)_第3页
微机原理第04章(寻址方式及传送指令)_第4页
微机原理第04章(寻址方式及传送指令)_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、第第4 4章章第第4章章8086/8088指令系统指令系统第一节第一节 8086/8088的寻址方式的寻址方式第二节第二节 8086/8088的指令系统的指令系统 4.1 8086/8088的寻址方式的寻址方式主要内容:主要内容:一、指令系统概念和指令组成一、指令系统概念和指令组成二、二、8086/8088寻址方式寻址方式三、小结三、小结一、指令系统概念和指令组成一、指令系统概念和指令组成 1、指令系统概念、指令系统概念 计算机通过执行指令序列来解决问题计算机通过执行指令序列来解决问题, 每种计算机都有一组指令集提供用户使用每种计算机都有一组指令集提供用户使用, 这组这组指令集就称为计算机的指

2、令系统指令集就称为计算机的指令系统。2、指令组成、指令组成 计算机中指令由计算机中指令由操作码字段和操作数字段操作码字段和操作数字段两部分组成。两部分组成。一条可以由一条可以由17个字节组成。个字节组成。 操作码字段操作码字段-指示计算机要指示计算机要执行的操作执行的操作, 操作数字段操作数字段-指出在指令执行操作过程中所需要的操作数;指出在指令执行操作过程中所需要的操作数;可以是可以是操作数本身操作数本身;可以是;可以是操作数地址或是地址的一部分;操作数地址或是地址的一部分;可以可以是指向操作数是指向操作数地址的指针或地址的指针或其他有关其他有关 操作数的信息。操作数的信息。3、指令的一般格

3、式、指令的一般格式:操作码字段操作码字段:在机器里只需对某种操作指定确定的二进制代码。在机器里只需对某种操作指定确定的二进制代码。通常用指令的第一个字节表示,不够可以占第二个字节中通常用指令的第一个字节表示,不够可以占第二个字节中的的3位。位。操作数字段操作数字段:操作数字段可以有一个操作数字段可以有一个,二个或三个地址指令。二个或三个地址指令。例:例:INC CX ADD AX , BX操作码操作码操作数操作数.操作数操作数4、操作数的存放、操作数的存放操作数的存放不外乎三种情况:操作数的存放不外乎三种情况:()() 操作数包含在指令中操作数包含在指令中 即指令的操作数字段包含操作数本身。这

4、种操作数为即指令的操作数字段包含操作数本身。这种操作数为立即数立即数。例:例:MOV AL , 08H()操作数包含在的一个内部寄存器中()操作数包含在的一个内部寄存器中例:例:INC CX指令中的操作数字段是指令中的操作数字段是C内部寄存器的一个内部寄存器的一个编码编码。这种寻址方式称为这种寻址方式称为寄存器寻址寄存器寻址。()操作数在内存数据区()操作数在内存数据区 操作数在内存数据区,操作数字段包含着此操作数地址。操作数在内存数据区,操作数字段包含着此操作数地址。 在中,任何在中,任何内存地址是由两部分组成:内存地址是由两部分组成: 段的基地址段的基地址:单元所在段的基地址:单元所在段的

5、基地址(大部分情况是数据段寄存器中);(大部分情况是数据段寄存器中); 段内偏移量段内偏移量:此单元与段基地址的距离。:此单元与段基地址的距离。 有效地址(有效地址(Effective Address) : 段内偏移量为适应各种数据结构的需要,可以有几个部分组段内偏移量为适应各种数据结构的需要,可以有几个部分组成,所以也把它称为有效地址。成,所以也把它称为有效地址。 寻址方式不同寻址方式不同EA的构成不同。归纳的构成不同。归纳EA可有多种情况构成:可有多种情况构成: 直接寻址,寄存器间接寻址,寄存器相对寻址,直接寻址,寄存器间接寻址,寄存器相对寻址, 基址加变址寻址,相对基址加变址寻址。基址加

6、变址寻址,相对基址加变址寻址。 寻址方式寻址方式如何寻找内存操作数。如何寻找内存操作数。不同寻址方式实质上是构成它不同寻址方式实质上是构成它段内的偏移量的方法段内的偏移量的方法不同不同。二、二、8086、8088寻址方式寻址方式(一)立即寻址(一)立即寻址 (Immediate addressing)(二)寄存器寻址方式(二)寄存器寻址方式 (Register addressing)(三)直接寻址(三)直接寻址 (Direct addressing)(四)寄存器间接寻址方式(四)寄存器间接寻址方式(Register indirect addressing)(五)寄存器相对寻址方式(五)寄存器相

7、对寻址方式(Register relative addressing) 或变址寻址(或变址寻址(Index Addressing)(六)基址加变址寻址方式(六)基址加变址寻址方式(Based indexed addressing)(七)相对基址加变址寻址方式(七)相对基址加变址寻址方式(Relative based indexed addressing)(一)(一)立即寻址立即寻址(Immediate addressing) 操作数直接存放在指令中,紧跟在操作码之后操作数直接存放在指令中,紧跟在操作码之后,作为指令,作为指令 的一部分,存放在代码段里,这种操作数称为立即数。的一部分,存放在代码

8、段里,这种操作数称为立即数。 立即数可以是位或立即数可以是位或16位的。位的。16位的立即数是高位字节放在高地址位的立即数是高位字节放在高地址,低位字节放在低地址低位字节放在低地址。 使用场合:使用场合:经常用于给寄存器赋初值。经常用于给寄存器赋初值。 注意:注意:只能用于源操作数字段只能用于源操作数字段,不能用于目的操作数字段。,不能用于目的操作数字段。第第4章:章:(一一) 立即数寻址方式立即数寻址方式指令中的操作数直接存放在机器代码中,紧跟在指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)

9、作码之后的主存单元中)这种操作数被称为这种操作数被称为立即数立即数imm可以是可以是8位数值位数值i8(00HFFH)也可以是也可以是16位数值位数值i16(0000HFFFFH)立即数寻址方式常用来给寄存器和存储单元赋值,立即数寻址方式常用来给寄存器和存储单元赋值,多以常量形式出现多以常量形式出现MOV AX, 0102H;AX0102H第第3章章 (二二) 寄存器寻址方式寄存器寻址方式操作数存放在操作数存放在CPU的内部寄存器的内部寄存器reg中:中:8位寄存器位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器位寄存器r16:AX、BX、CX、DX、SI、DI、BP、

10、SP4个段寄存器个段寄存器seg:CS、DS、SS、ES寄存器名表示其内容(操作数)寄存器名表示其内容(操作数)MOV AX, BX;AXBX第第3章章 (三三) 直接寻址方式直接寻址方式直接寻址方式的有效地址在指令中直接给出直接寻址方式的有效地址在指令中直接给出默认的默认的段地址在段地址在DS段寄存器,可使用段寄存器,可使用段超越前段超越前缀缀改变改变用中括号包含有效地址,表达存储单元的内容用中括号包含有效地址,表达存储单元的内容MOV AX, 2000H;AXDS:2000HMOV AX, ES: 2000H;AXES:2000H注意:注意:(1)直接寻址方式适用于处理单个变量。)直接寻址

11、方式适用于处理单个变量。(2)直接寻址方式)直接寻址方式隐含的段寄存器是隐含的段寄存器是 DS, 8086/8088允许段允许段跨越跨越,即即允许使用允许使用 CS SS ES作为段寄存器,这作为段寄存器,这时,必须在指令中特别标明。时,必须在指令中特别标明。 (3)IBM PC机中规定机中规定双操作数指令必须有一个操作数使用寄双操作数指令必须有一个操作数使用寄存器存器方式,这就是常常先要把一个变量送到寄存器去的原因。方式,这就是常常先要把一个变量送到寄存器去的原因。例:例:要处理某存放在存储器里的变量,可以用直接寻址方式把变量要处理某存放在存储器里的变量,可以用直接寻址方式把变量先取到一个寄

12、存器中再作处理。先取到一个寄存器中再作处理。(四四)寄存器间接寻址方式寄存器间接寻址方式(Register indirect addressing) 操作数在存储器中操作数在存储器中,操作数地址的操作数地址的16位偏移量包含在:位偏移量包含在:BP、BX、SI、DI寄存器寄存器中。中。 1、若选择、若选择SI、DI、BX作为间接寻址作为间接寻址操作数一般在现行数据段区域中,用操作数一般在现行数据段区域中,用(DS)作为段地址。作为段地址。即操作数物理地址为:即操作数物理地址为: 物理地址物理地址PA=16 d (DS)+(BX) 物理地址物理地址PA=16 d (DS)+(SI) 物理地址物理

13、地址PA=16 d (DS)+(DI)MOV AX, BX ;AXDS:BX例:例:MOV BX,DI (DS)=6000H (DI)=2000H PA=62000H (62000H)=50A0H (BX)=50A0H寄存器间接寻址方式寄存器间接寻址方式 MOV BX,DI6000H6000H2000H2000HDSDSDIDI6 0 0 0 06 0 0 0 02 20 00 00 0+ +6 2 0 0 06 2 0 0 0.AOHAOH50H50H.62000H62000H50H50HA0HA0HBLBLBHBH数数据据段段2 、若选择、若选择BP寄存器作为间接寻址寄存器作为间接寻址 操

14、作数在堆栈段区域中,用操作数在堆栈段区域中,用SS寄存器的内容作为段地址。寄存器的内容作为段地址。 操作数物理地址操作数物理地址: PA=16d (SS)+(BP)例:例: MOV BP, AX执行前:执行前: (SS)=1000H , (BP)=3000H , (AX)=1234H执行后:执行后:PA=13000H (13000H)=1234H1000H1000H3000H3000HSSSSBPBP1 0 0 0 01 0 0 0 03 30 00 00 0+ +1 3 0 0 01 3 0 0 0.34H34H12H12H.13000H13000H12H12H34H34HALALAHAH堆

15、堆栈栈段段寄存器间接寻址方式寄存器间接寻址方式 MOV BP, AX3 、用、用 SI、DI、BX 、BP作为间接寻址允许段跨越作为间接寻址允许段跨越 指令中可以指定段跨越前缀来取得其他段中的数据。指令中可以指定段跨越前缀来取得其他段中的数据。例:例:MOV ES:DI, AX MOV DX, DS:BP这种寻址方法可以用于表格处理。这种寻址方法可以用于表格处理。第第4章章 (五五)寄存器相对寻址方式(寄存器相对寻址方式(Register relative addressing)或变)或变址寻址址寻址 (Index Addressing)有效地址有效地址是寄存器内容与有符号是寄存器内容与有符号

16、8位或位或16位位移位位移量之和,寄存器可以是量之和,寄存器可以是BX、BP或或SI、DI有效地址有效地址BX/BP/SI/DIBX/BP/SI/DI8/168/16位位移量位位移量段地址对应段地址对应BX/SI/DI寄存器寄存器默认是默认是DS,对应,对应BP寄存器寄存器默认是默认是SS;可用段超越前缀改变;可用段超越前缀改变MOV AX, SI+06H;AXDS:SI+06HMOV AX, 06HSI;AXDS:SI+06H8086/8088 CPU 中有中有两个变址寄存器两个变址寄存器 : 源变址寄存器源变址寄存器 SI ; 目的变址寄存器目的变址寄存器 DI 。 操作数一般在内存的数据

17、段中,但允许段跨越。操作数一般在内存的数据段中,但允许段跨越。除有段跨越前缀之外,形成物理地址有二种方式:除有段跨越前缀之外,形成物理地址有二种方式:PA=16d (DS)+PA=16d (DS)+(BX)(BX)(SI)(SI)(DI)(DI)+ +8位位移量8位位移量16位位移量16位位移量PA=16d (SS)+PA=16d (SS)+ (BP)(BP)+ +8位位移量8位位移量16位位移量16位位移量例:例: MOV AX, COUNT BP或或MOV AX, COUNT+BP或或MOV AX, COUNT+BP COUNT为为16位位移量。位位移量。指令执行前指令执行前: (SS)=

18、5000H, (BP)=3000H,COUNT=2040H,(AX)=1234H指令执行后指令执行后:EA=5040HPA=55040H(55040H)=5548H(AX)=5548H 寄存器相对寻址方式寄存器相对寻址方式MOV AX,COUNTBPOPOPOPOP40H40H20H20H.48H48H55H55H.55H55H48H48H存储器存储器操操作作码码位移量位移量COUNTCOUNT代代码码段段堆堆栈栈段段55040H55040H50000H50000HAHAHALAL用途:这种寻址方式同样用于用途:这种寻址方式同样用于表格处理表格处理。 表格首地址表格首地址COUNT 修改基址或

19、变址寄存器来取得表格中的值。修改基址或变址寄存器来取得表格中的值。例:某数据表的首地址为例:某数据表的首地址为COUNT 欲读取表中第欲读取表中第10个数据个数据,存放到(存放到(AL)中。中。 第第10个数据的有效地址个数据的有效地址: EA= COUNT + 9MOV SI , 09HMOV AL , SI+COUNT *直接变址寻址方式也可以使用段跨越前缀直接变址寻址方式也可以使用段跨越前缀 MOV DL,ES:STRINGSI第第4章章 (六)(六) 基址变址寻址方式基址变址寻址方式有效地址有效地址由基址寄存器(由基址寄存器(BX或或BP)的内容加上)的内容加上变址寄存器(变址寄存器(

20、SI或或DI)的内容构成:)的内容构成:有效地址有效地址BX/BPSI/DI段地址对应段地址对应BX基址寄存器基址寄存器默认是默认是DS,对应,对应BP基基址寄存器址寄存器默认是默认是SS;可用段超越前缀改变;可用段超越前缀改变MOV AX, BX+SI;AXDS:BX+SIMOV AX, BXSI;AXDS:BX+SI除有段跨越前缀之外,形成物理地址有二种方式:除有段跨越前缀之外,形成物理地址有二种方式:PA=16d(DSPA=16d(DS)+)+ (BX)(BX)+ +(DI)(DI)(SI)(SI)PA=16d(SPA=16d(SS S)+)+ (BP)(BP) + +(DI)(DI)(

21、SI)(SI)例:例: MOV AX, BXSI或或 MOV AX, BX+SI执行指令前执行指令前: (DS)=3200H, (BX)=0456H, (SI) =1094H (334EAH)=4567H执行指令后执行指令后: EA=14EAH PA=334EAH (AX)=4567H基址加变址寻址方式基址加变址寻址方式 MOV AX,BX+SI.67H67H45H45H存储器存储器32000H32000H334EAH334EAH45H45H67H67HALALAHAH数数据据段段.用途:这种寻址方式同样适用于数组或表格处理。用途:这种寻址方式同样适用于数组或表格处理。表格首地址表格首地址 基

22、址寄存器中基址寄存器中,用变址寄存器来访问数组中的元素。用变址寄存器来访问数组中的元素。 二个寄存器都能修改,二个寄存器都能修改,所以比直接变址方式更灵。所以比直接变址方式更灵。这种寻址方式允许段跨越。这种寻址方式允许段跨越。使用段跨越前缀格式使用段跨越前缀格式: MOV AX,ES:BXSI第第4章章 (七七) 相对基址变址寻址方式相对基址变址寻址方式有效地址有效地址是基址寄存器(是基址寄存器(BX/BP)、变址寄存器)、变址寄存器(SI/DI)与一个)与一个8位或位或16位位移量之和:位位移量之和:有效地址有效地址BX/BPSI/DI8/16位位移量位位移量段地址对应段地址对应BX基址寄存

23、器基址寄存器默认是默认是DS,对应,对应BP基基址寄存器址寄存器默认是默认是SS;可用段超越前缀改变;可用段超越前缀改变MOV AX, BX+DI+6;AXDS:BX+DI+6MOV AX, 6BX+DIMOV AX, 6BXDI除有段跨越前缀之外,形成物理地址有二种方式:除有段跨越前缀之外,形成物理地址有二种方式:(DI)(DI)PA=16d(SSPA=16d(SS)+)+ (BP)(BP) + +(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量(DI)(DI)PA=16d(DSPA=16d(DS)+)+ (BX)(BX) + +(SI)(SI)+ +8位位移量8位位移量1

24、6位位移量16位位移量例:例:MOV AX, MASKBXDIMOV AX, MASK BX+DIMOV AX,MASX+BX+DI执行指令前执行指令前:(DS)=3000H(BX)=1346H(DI)=0500HMASK=1234H(32A7AH)=4050H执行指令后执行指令后:EA=2A7AHPA=32A7AH(AX)=4050H 相对基址加变址相对基址加变址MOV AX, MASK+BX+DIOPOPOPOP34H34H12H12H.50H50H40H40H存储器存储器30000H30000H32A7AH32A7AH40H40H50H50HALALAHAH数数据据段段操操作作码码位移位

25、移量量MASKMASK代代码码段段用途:用途:这种寻址方式为堆栈处理提供方便:这种寻址方式为堆栈处理提供方便: (BP) 栈顶(一般栈顶(一般 BP 可指向栈顶)可指向栈顶)从栈顶到数组的首地址可以用位移量表示从栈顶到数组的首地址可以用位移量表示(MASK). 变址寄存器(变址寄存器(SI)或()或(DI)指向数组中某个元素。指向数组中某个元素。第第4章章8086/8088指令系统指令系统一、概述一、概述8086/8088的指令系统中共有的指令系统中共有92种基本指令。种基本指令。可以分成可以分成6个功能组个功能组:1数据传送数据传送(Data transfer)2算术运算(算术运算(Arit

26、hmetic)3逻辑运算和移位指令逻辑运算和移位指令(Logic& Shift)4串操作串操作(String manipulation)5控制转移(控制转移(Control Transfer)6处理器控制(处理器控制(Processor Control)第第4章章 4.2 8086/8088指令系统指令系统4.2.1 数据传送类指令数据传送类指令数据传送是计算机中最基本、最重要的一种操作数据传送是计算机中最基本、最重要的一种操作, ,传送指令也是最常使用的一类指令传送指令也是最常使用的一类指令传送指令把数据从一个位置传送到另一个位置传送指令把数据从一个位置传送到另一个位置除标志寄存器传

27、送指令外,均不影响标志位除标志寄存器传送指令外,均不影响标志位重点掌握重点掌握MOV XCHG XLAT PUSH POP LEA第第4章:章:4.2 8086/8088指令系统指令系统4.2.1 数据传送类指令数据传送类指令(一)通用传送指令(一)通用传送指令(General Purpose Transfer)(二)输入输出指令(二)输入输出指令(Input and Output)(三)目的地址传送指令(三)目的地址传送指令(Address-object transfer)(四)标志传送指令(四)标志传送指令(Flag register transfer)第第4章:章: (一一) 通用数据传

28、送指令通用数据传送指令提供方便灵活的通用传送操作提供方便灵活的通用传送操作有有3条指令条指令MOVXCHGXLAT第第4章:章:1. 传送指令传送指令MOV(move)把一个字节或字的操作数从源地址传把一个字节或字的操作数从源地址传送至目的地址送至目的地址MOV reg/mem,immMOV reg/mem,imm;立即数送寄存器或主存;立即数送寄存器或主存MOV reg/mem/seg,regMOV reg/mem/seg,reg;寄存器送(段)寄存器或主存;寄存器送(段)寄存器或主存MOV reg/seg,memMOV reg/seg,mem;主存送(段)寄存器;主存送(段)寄存器MOV

29、reg/mem,segMOV reg/mem,seg;段寄存器送寄存器或主存;段寄存器送寄存器或主存演示演示第第4章:章:MOV指令立即数传送指令立即数传送mov cl,4;cl4cl4,字节传送,字节传送mov dx,0ffh;dx00ffhdx00ffh,字传送,字传送mov si,200h;si0200hsi0200h,字传送,字传送mov bvar,0ah;字节传送字节传送;假设;假设bvarbvar是一个字节变量,定义如下:是一个字节变量,定义如下:bvar bvar dbdb 0 0mov wvar,0bh;字传送字传送;假设;假设wvarwvar是一个字变量,定义如下:是一个字变

30、量,定义如下:wvar wvar dwdw 0 0明确指令是字节操作还是字操作明确指令是字节操作还是字操作第第4章:章:MOV指令寄存器传送指令寄存器传送mov ah,al;ahal,字节传送,字节传送mov bvar,ch;bvarch ,字节传送,字节传送mov ax,bx;axbx,字传送,字传送mov ds,ax;dsax,字传送,字传送mov bx,al;bxal,字节传送,字节传送 寄存器具有明确的字节和字类型寄存器具有明确的字节和字类型第第4章:章:MOV指令存储器传送指令存储器传送mov al,bx;alds:bxmov dx,bp;dxss:bp+0mov dx,bp+4;d

31、xss:bp+4mov es,si;esds:si 不存在存储器向存储器的传送指令不存在存储器向存储器的传送指令第第4章:章:MOV指令段寄存器传送指令段寄存器传送mov si,dsmov ax,ds;axdsmov es,ax;esaxds 对段寄存器的操作不灵活对段寄存器的操作不灵活第第4章:章:MOV指令传送功能图解指令传送功能图解立即数立即数段寄存器段寄存器CS DS ES SSCS DS ES SS通用寄存器通用寄存器AX BX CX DXAX BX CX DXBP SP SI DIBP SP SI DI存存储储器器非法指令的主要现象:非法指令的主要现象:两个操作数的类型不一致两个操

32、作数的类型不一致无法确定是字节量还是字量操作无法确定是字节量还是字量操作两个操作数都是存储器两个操作数都是存储器段寄存器的操作有一些限制段寄存器的操作有一些限制第第4章:非法指令两个操作数类型不一致章:非法指令两个操作数类型不一致在绝大多数双操作数指令中,目的操作数和源操在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字量,作数必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令或者同为字节量,否则为非法指令MOV AL, 050AH;非法指令,;非法指令,修正:修正:;mov ax,050ahMOV SI, DL;非法指令,;非法指令,修正:修正

33、:;mov dh,0;mov si,dx第第4章:非法指令无法确定是字节量还是字量操作章:非法指令无法确定是字节量还是字量操作当无法通过任一个操作数确定是操作类型时,需当无法通过任一个操作数确定是操作类型时,需要利用汇编语言的操作符显式指明要利用汇编语言的操作符显式指明MOV BX+SI, 255;非法指令,;非法指令,修正:修正:;mov byte ptr bx+sibyte ptr bx+si,255;byte ptr byte ptr 说明是字节操作说明是字节操作;mov word ptr bx+siword ptr bx+si,255;word ptr word ptr 说明是字操作说

34、明是字操作第第4章:非法指令两个操作数都是存储器章:非法指令两个操作数都是存储器8088指令系统除串操作指令外,不允许两个操作指令系统除串操作指令外,不允许两个操作数都是存储单元(存储器操作数)数都是存储单元(存储器操作数)MOV buf2, buf1;非法指令,;非法指令,修正:修正:;假设;假设buf2和和buf1是两个字变量是两个字变量;mov ax,buf1;mov buf2,ax;假设;假设buf2和和buf1是两个字节变量是两个字节变量;mov al,buf1;mov buf2,al第第4章:非法指令段寄存器的操作有一些限制章:非法指令段寄存器的操作有一些限制8088指令系统中,能

35、直接对段寄存器操作的指令指令系统中,能直接对段寄存器操作的指令只有只有MOV等个别传送指令,并且不灵活等个别传送指令,并且不灵活MOV DS, ES;非法指令,;非法指令,修正:修正:;mov ax,es;mov ds,axMOV DS, 100H;非法指令,;非法指令,修正:修正:;mov ax,100h;mov ds,ax MOV CS, SI;非法指令;非法指令;指令存在,但不能执行;指令存在,但不能执行第第4章:章:2. 交换指令交换指令XCHG(exchange)把两个地方的数据进行互换把两个地方的数据进行互换寄存器与寄存器之间对换数据寄存器与寄存器之间对换数据寄存器与存储器之间对换

36、数据寄存器与存储器之间对换数据不能在存储器与存储器之间对换数据不能在存储器与存储器之间对换数据XCHG reg,reg/memXCHG reg,reg/mem;reg reg reg/memreg/mem演示演示第第4章:例章:例4.2 数据交换数据交换mov ax,1199hmov ax,1199h;ax=1199hax=1199hxchg ah,alxchg ah,al;ax=9911hax=9911h;等同于;等同于 xchg al,ahxchg al,ahmov wvar,5566hmov wvar,5566h ;wvarwvar是一个字量变量是一个字量变量xchg ax,wvarxc

37、hg ax,wvar ;ax=5566hax=5566h,wvar=9911hwvar=9911h;等同于;等同于 xchg wvar,axxchg wvar,ax xchg al,byte ptr wvar+1xchg al,byte ptr wvar+1;ax=5599hax=5599h,wvar=6611hwvar=6611h;“byte ptr wvar+1”byte ptr wvar+1”强制为字节量,只取高字强制为字节量,只取高字节与节与ALAL类型交换,否则数据类型不匹配类型交换,否则数据类型不匹配第第4章:章:3. 换码指令换码指令XLAT(translate)将将BX指定的缓

38、冲区中、指定的缓冲区中、AL指定的位移处的一个指定的位移处的一个字节数据取出赋给字节数据取出赋给AL换码指令执行前:换码指令执行前:在主存建立一个在主存建立一个字节量表格字节量表格,内含要转换成的目的代码,内含要转换成的目的代码表格首地址表格首地址存放于存放于BXBX,ALAL存放相对表格首地址的存放相对表格首地址的位移量位移量换码指令执行后:换码指令执行后:将将ALAL寄存器的内容转换为寄存器的内容转换为目标代码目标代码XLATXLAT;alds:bx+alalds:bx+al演示演示第第4章:章:4.2.2 堆栈操作指令堆栈操作指令堆栈是一个堆栈是一个“后进先出后进先出FILO”FILO”

39、(或说(或说“先先进后出进后出FILO”FILO”)的主存区域,位于堆栈段)的主存区域,位于堆栈段中;中;SSSS段寄存器段寄存器记录其段地址记录其段地址堆栈只有一个出口,即当前栈顶;用堆栈只有一个出口,即当前栈顶;用堆栈堆栈指针寄存器指针寄存器SPSP指定指定堆栈只有两种基本操作:进栈和出栈,对堆栈只有两种基本操作:进栈和出栈,对应两条指令应两条指令PUSH和和POP图示图示第第4章:进栈指令章:进栈指令PUSH进栈指令先使堆栈指针进栈指令先使堆栈指针SP减减2,然后把一,然后把一个字操作数存入堆栈顶部个字操作数存入堆栈顶部PUSH r16/m16/segPUSH r16/m16/seg;SPSPSPSP2 2;SS:SPr16/m16/segSS:SPr16/m16/seg演示演示push axpush 2000h第第4章:出栈指令章:出栈指令POP出栈指令把栈顶的一个字传送至指定的目出栈指令把栈顶的一个字传送至指定的目的操作数,然后堆栈指针的操作数,然后堆栈指针SP加加2POP r16/m

温馨提示

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

评论

0/150

提交评论