寻址方式和指令系统修改

寻址方式和指令系统修改

ID:37749107

大小:2.74 MB

页数:141页

时间:2019-05-30

寻址方式和指令系统修改_第1页
寻址方式和指令系统修改_第2页
寻址方式和指令系统修改_第3页
寻址方式和指令系统修改_第4页
寻址方式和指令系统修改_第5页
资源描述:

《寻址方式和指令系统修改》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本章重点:1、掌握8086寻址方式2、掌握8086汇编语言指令系统第三章8086的寻址方式和指令系统第三章8086的寻址方式和指令系统3-18086的寻址方式指令=操作码+操作数指出操作的性质(作用)指出操作的对象寻址方式就是指令中说明操作数所在地址的方法(操作数在哪)。指令有单操作数、双操作数和无操作数之分。如果是双操作数指令,要用逗号将两个操作数分开,逗号右边的操作数称为源操作数,逗号左边的为目的操作数。MOVAX,BX源操作数操作码目的操作数两操作数用逗号隔开MOV功能:将BX中的源操作数→AX(目的)而象

2、单操作数指令INCAX其中AX既是源操作数,又是目的操作数,其功能是:AX+1→AX。而象指令NOP,没有操作数。前面举的例子都是操作数在寄存器中,操作数还可以在存储器或I/O端口中,也可以是立即数。8086的寻址方式下面主要以MOV指令来说明8086的这些寻址方式。一、立即寻址方式操作数直接包含在指令中,它是一个8位或16位的常整数,也叫立即数。例如MOVAL,30HMOVAX,0FFFCHMOV[1000H],1234H注意:1.常数以A~F开头时,应在其前加0,以区别其它符号(如0FFFCH)。2.立即数只

3、能作源操作数,不能作目的操作数。(如MOV23H,BL×)假设寄存器是“不带锁的柜子”若操作数在寄存器中,则只要直接打开柜门即可取之。假设存储单元是“带锁的柜子”若操作数在存储单元中,则先要找到钥匙打开锁,再开柜门取操作数,钥匙就相当于存储单元的地址。立即寻址方式,操作数相当于直接暴露在外,需要时可直接来取。二、寄存器寻址方式操作数包含在寄存器中。对于16位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP等等;对于8位操作数,寄存器可以是AH,AL,BH,BL,CH,CL,DH,DL。例1:MO

4、VDX,AX2:MOVBL,CL注意:源操作数的长度必须与目的操作数一致。假设寄存器是“不带锁的柜子”若操作数在寄存器中,则只要直接打开柜门即可取之。三、直接寻址方式(存储器寻址)1.直接寻址方式有效地址(EA):操作数的偏移地址。使用直接寻址方式的指令时,存储单元的有效地址直接由指令给出,而段地址如没有指令前缀,默认由数据段寄存器给出。例如MOVAX,[2000H];存储单元的有效地址EA=2000H,段地址由数据段DS指定(设DS=3000H)。此指令的执行过程如下图所示。假设存储单元是“带锁的柜子”若操作数

5、在存储单元中,则先要找到钥匙打开锁,再开柜门取操作数,钥匙就相当于存储单元的地址。对于直接寻址方式来说,就相当于钥匙直接给出,即直接给出了单元地址。指令MOVAX,[2000H]的执行过程2.段超越前缀如果要对代码段、堆栈段或附加段寄存器所指出的存储区进行直接寻址,应在指令中指定段超越前缀。例如指令MOVAX,ES:[1000H]源操作数所在的存储单元的物理地址是ES×16+1000H,而不是默认的DS×16+1000H。(MOVAX,ES:[1000H]ES:MOVAX,[1000H])3.符号地址(变量名)在

6、汇编语言中还允许用符号地址代替数值地址,实际上就是给存储单元起一个名字,这样,要与这些单元打交道,只要使用其名字即可,不必记住具体数值是多少。例如MOVAX,AREA1这里的AREA1就是操作数的符号地址,该指令执行后,将从有效地址为AREA1的存储单元中取出一个字送到AX中去。注意:光从指令的形式上看,AREA1不仅可代表符号地址,也可以表示它是一个16位的立即数,两者之间究竟如何来区别呢?程序中还必须事先安排说明语句也叫做伪指令来加以说明。例如AREA1EQU1234H┋MOVAX,AREA1这里,等值伪指令

7、语句EQU用来给常数1234H定义一个符号名为AREA1,在此后的程序中,符号AREA1就代表一个立即数1234H。指令MOVAX,AREA1执行后,AX=1234H。又如AREA1DW1234H┋MOVAX,AREA1([AREA1])这里的DW伪指令语句用来定义一个存储器中的数据变量,AREA1表示内存中一个数据区的名字,也就是符号地址,该地址单元存放一个字数据1234H。四、寄存器间接寻址方式指令中给出的寄存器中的值不是操作数本身,而是操作数的有效地址EA,这种寻址方式称为寄存器间接寻址。寄存器名称外面必须

8、加方括号,以与寄存器寻址方式相区别。这类指令中使用的寄存器有基址寄存器BX、BP及变址寄存器SI、DI。假设存储单元是“带锁的柜子”若操作数在存储单元中,则先要找到钥匙打开锁,再开柜门取操作数,钥匙就相当于存储单元的地址。对于寄存器间接寻址方式来说,就相当于钥匙放在寄存器中,即寄存器给出了要访问的存储单元地址。存储单元寄存器两点说明:1.如果指令中指定的寄存器是BX,SI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。