收藏 分销(赏)

汇编语言寻址方式.pptx

上传人:人****来 文档编号:4224073 上传时间:2024-08-26 格式:PPTX 页数:22 大小:178.61KB
下载 相关 举报
汇编语言寻址方式.pptx_第1页
第1页 / 共22页
汇编语言寻址方式.pptx_第2页
第2页 / 共22页
点击查看更多>>
资源描述
80 x86的寻址方式的寻址方式计算机是通过执行指令序列来解决问题的,因此每种计算机都计算机是通过执行指令序列来解决问题的,因此每种计算机都有一组指令系统提供给用户使用,这组指令集就称为计算机的有一组指令系统提供给用户使用,这组指令集就称为计算机的指令系统。指令系统。计算机中的指令由计算机中的指令由操作码操作码字段和字段和操作数操作数字段两部分组成。字段两部分组成。指令的操作码字段在机器里面的表示比较简单,只需对每一种指令的操作码字段在机器里面的表示比较简单,只需对每一种操作指定确定的二进制代码就可以了。操作指定确定的二进制代码就可以了。指令的操作数字段情况较为复杂。指令的操作数字段情况较为复杂。确定指令中用于说明操作数所在地址的方法称为确定指令中用于说明操作数所在地址的方法称为寻址方法寻址方法。8086/8088有有七种七种基本的寻址方式。基本的寻址方式。操作码操作码 操作数操作数 .操作数操作数1.立即寻址方式立即寻址方式操作数就包含在指令中,它操作数就包含在指令中,它作为指令的一部分,跟在操作后存作为指令的一部分,跟在操作后存放在代码段放在代码段,这种操作数就称为立即数。,这种操作数就称为立即数。立即数可以是立即数可以是8位的,也可以是位的,也可以是16位的。位的。如果是如果是16位立即数,按位立即数,按“高高低低高高低低”原则进行读取。原则进行读取。例如:例如:MOV AX,1234H再如:再如:MOV AL,5则执行指令后(则执行指令后(AL)=05H MOV BX,2064H则执行指令后,(则执行指令后,(BX)=3064H2.寄存器寻址方式寄存器寻址方式操作数在操作数在CPU内部的寄存器中,指令指定寄存器号。内部的寄存器中,指令指定寄存器号。对于对于16位操作数,寄存器可以是:位操作数,寄存器可以是:AX,BX,CX,DX,SI,DI,SP,BP对于对于8位操作数,寄存器可以是:位操作数,寄存器可以是:AL,AH,BL,BH,CL,CH,DL,DH这种寻址方式由于操作数就在寄存器中,不需要访问存储器来这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数,因而可以取得较高的运算速度。取得操作数,因而可以取得较高的运算速度。例如:例如:MOV AX,BX如指令执行前(如指令执行前(AX)=3064H,(BX)=1234H。则指令执行后,。则指令执行后,(AX)=1234H,(BX)保持不变保持不变又如:又如:MOV SI,AXMOV AL,DH都是寄存器寻址的的例子。都是寄存器寻址的的例子。3.直接寻址方式直接寻址方式操作数在寄存器中,指令直接操作数在寄存器中,指令直接包含有操作数的有效地址包含有操作数的有效地址(偏移(偏移地址)。地址)。操作数一般存放在数据段操作数一般存放在数据段。所以,操作数低地址由所以,操作数低地址由DS加上指令中直接给出的加上指令中直接给出的16位偏移得位偏移得到。到。例如:如果例如:如果(DS)=2000H,MOV AX,8054H在汇编语言指令中,可以在汇编语言指令中,可以用符号地址代替数值地址用符号地址代替数值地址,如:如:MOV AX,VALUE此时,此时,VALUE为存放操作数单元的符号地址。为存放操作数单元的符号地址。如写成:如写成:MOV AX,VALUE也是可以的,两者等价。也是可以的,两者等价。如如VALUE在附加段中,则应指定段超越前缀如下:在附加段中,则应指定段超越前缀如下:MOV AX,ES:VALUE或或MOV AX,ES:VALUE直接寻址方式常用语处理单个存储器变量的情况。它可以实现直接寻址方式常用语处理单个存储器变量的情况。它可以实现在在64K字节的段内寻址操作数。字节的段内寻址操作数。直接寻址的操作数通常是程序直接寻址的操作数通常是程序使用的变量使用的变量。注意:注意:立即寻址和直接寻址书写表示方法上是不同的,立即寻址和直接寻址书写表示方法上是不同的,直接寻直接寻址的地址要放在方括号中。在源程序中,往往用变量名表示。址的地址要放在方括号中。在源程序中,往往用变量名表示。4.寄存器间接寻址方式寄存器间接寻址方式操作数在存储器中,操作数操作数在存储器中,操作数有效地址在有效地址在SI、DI、BX、BP这四这四个寄存器之一中个寄存器之一中。在一般情况下,如果有效地址在在一般情况下,如果有效地址在SI、DI和和BX中,则以中,则以DS寄存寄存器之内容位段值。器之内容位段值。如果有效地址在如果有效地址在BP中,则以中,则以SS段寄存器之内容位段值。段寄存器之内容位段值。例如:如果例如:如果(DS)=5000H,(SI)=1234H MOV AX,SI指令中也可指定段超越前缀来取得其它段中的数据。指令中也可指定段超越前缀来取得其它段中的数据。如,如,MOV AX,ES:BX引用的段寄存器是引用的段寄存器是ES请熟悉下面的表达形式:请熟悉下面的表达形式:MOV SI,AX;目的操作数间接寻址目的操作数间接寻址MOV BP,CX;目的操作数引用的段寄存器是目的操作数引用的段寄存器是SSMOV SI,AX;目的操作数寄存器寻址目的操作数寄存器寻址5.寄存器相对寻址方式寄存器相对寻址方式操作数在存储器中,操作数的有效地址是一个基址寄存器(操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器()或变址寄存器(SI、DI)内容加上指令中给定的)内容加上指令中给定的8位或位或16位位移量之和。位位移量之和。即:即:在一般情况下,如果在一般情况下,如果SI、DI或或BX之内容作为有效地址的一部分,之内容作为有效地址的一部分,那么引用的段寄存器是那么引用的段寄存器是DS;如果如果BP之内容作为有效地址的一部之内容作为有效地址的一部分,那么引用的段寄存器是分,那么引用的段寄存器是SS。在指令中给定的在指令中给定的8位或位或16位位位移量采用补码位移量采用补码形式表示。形式表示。在计算在计算有效地址时,如位移量是有效地址时,如位移量是8位,则被带符号扩展成位,则被带符号扩展成16位。位。例如:如果例如:如果(DS)=5000H,(DI)=3678H MOV AX,DI+1234H则,物理地址则,物理地址=50000+3678+1223=5489BH假设该字存储单元的内容如下,则假设该字存储单元的内容如下,则(AX)=55AAH请熟悉下面的写作形式:请熟悉下面的写作形式:MOV BX,BP-4 源操作数间接相对寻址,引用的段寄存器是源操作数间接相对寻址,引用的段寄存器是SS。MOV ES:BX+5,AL 目的操作数采用寄存器相对寻址,引用的段寄存器是目的操作数采用寄存器相对寻址,引用的段寄存器是ES。指令指令MOV AX,SI+3与与MOV AX,3SI是等价的。是等价的。6.基址加变址寻址方式基址加变址寻址方式操作数在存储器中,操作数的有效地址是由:操作数在存储器中,操作数的有效地址是由:基址寄存器之一的内容与变址寄存器之一的内容相加。基址寄存器之一的内容与变址寄存器之一的内容相加。即:即:在一般情况下,如果在一般情况下,如果BP之内容作为有效地址的一部分,那么引之内容作为有效地址的一部分,那么引用的段寄存器是用的段寄存器是SS;否者以;否者以DS之内容为段值。之内容为段值。例如:如果例如:如果(DS)=2100H,(BX)=0158H,(DI)=10A5H MOV AX,BXDI假设该字存储单元的内容如下,则假设该字存储单元的内容如下,则(AX)=1234H下面两种表示方法是等价的:下面两种表示方法是等价的:MOV AX,BX+DIMOV AX,DIBX下面指令中,目的操作数采用基址加变址寻址,引用的段寄存下面指令中,目的操作数采用基址加变址寻址,引用的段寄存器是器是DS。MOV DS:BP+SI,AL下面指令中,源操作数采用基址加变址寻址,引用的段寄存器下面指令中,源操作数采用基址加变址寻址,引用的段寄存器ES。MOV AX,ES:BX+SI这种寻址方式适用于处理数据或表格。这种寻址方式适用于处理数据或表格。用基址寄存器存放数组用基址寄存器存放数组首地址首地址,而用变址寄存器来定位数组中的,而用变址寄存器来定位数组中的各元素各元素。或反之。或反之。由于两个寄存器都可改变,所以能更加灵活地访问数组或表格由于两个寄存器都可改变,所以能更加灵活地访问数组或表格中的元素。中的元素。7.相对基址加变址寻址方式相对基址加变址寻址方式操作数在存储器中,操作数的有效地址是由:操作数在存储器中,操作数的有效地址是由:基址寄存器之一的内容与变址寄存器之一的内容基址寄存器之一的内容与变址寄存器之一的内容及指令中给定的及指令中给定的8位或位或16位位移量相加得到。位位移量相加得到。即:即:在一般情况下,如果在一般情况下,如果BP之内容作为有效地址的一部分,那么引之内容作为有效地址的一部分,那么引用的段寄存器是用的段寄存器是SS;否者以;否者以DS之内容为段值。之内容为段值。在指令中给定的在指令中给定的8位或位或16位位位移量采用补码位移量采用补码形式表示。在计算形式表示。在计算机有效地址时,机有效地址时,如果位移量是如果位移量是8位,那么被带符号扩展成位,那么被带符号扩展成16位。位。当所取得的有效地址超过当所取得的有效地址超过FFFFH是,就取是,就取64K的模。的模。例如:如果例如:如果(DS)=5000H,(BX)=1223H,(DI)=54H(51275)=54H,(,(51276)=76H MOV AX,BX+DI-2那么,存取的物理存储单元是多少呢?那么,存取的物理存储单元是多少呢?物理地址物理地址=50000+1223+0054+FFFFE =51275H在执行该指令后,在执行该指令后,(AX)=7654H。注意解算过程中的符号扩展注意解算过程中的符号扩展相对基址加变址这种寻址方式的相对基址加变址这种寻址方式的表示方法多种多样表示方法多种多样,下面四种,下面四种表示方法均是等价的:表示方法均是等价的:MOV AX,BX+DI+1234HMOV AX,1234HBXDIMOV AX,1234HBX+DIMOV AX,1234HDIBX1.现有(现有(DS)=2000H,(BX)=0100H,(SI)=0002H(20100)=12H,(20101)=34H,(20102)=56H(20103)=78H,(21200)=2AH,(21201)=4CH(21202)=B7H,(21203)=65H试说明下列各条指令执行完后试说明下列各条指令执行完后AX寄存器的内容。寄存器的内容。(1)MOV AX,1200H(2)MOV AX,BX(3)MOV AX,1200H(4)MOV AX,BX(5)MOV AX,1100BX(6)MOV AX,BXSI(7)MOV AX,1100BXSI2.假设(假设(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名数据段中变量名VAL的偏移地址值为的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?多少?(1)MOV AX,0ABH(2)MOV AX,BX(3)MOV AX,100H(4)MOV AX,VAL(5)MOV AX,BX(6)MOV AX,ES:BX(7)MOV AX,BP(8)MOV AX,SI2(续续).假设(假设(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名数据段中变量名VAL的偏移地址值为的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?多少?(9)MOV AX,BX+10(10)MOV AX,VALBX(11)MOV AX,BXSI(12)MOV AX,VAL BXSI除了这除了这7中基本的寻址方式外,中基本的寻址方式外,8086/8088还提供了还提供了4种基于转种基于转移地址的寻址方式(左边为段内,右边为段间):移地址的寻址方式(左边为段内,右边为段间):(DS)=2000H,(CS)=6000H,(SS)=8000H,(ES)=A000H(BX)=1256H,位移量位移量TABLE=20A1H,(232F7H)=3280H(1)JMP BX执行后,(执行后,(IP)=1256H,下一条指令的物理地址是:下一条指令的物理地址是:6000(0)+1256=61256H(2)JMP TABLEBX执行后,(执行后,(IP)=(2000(0)+(BX)+位移量位移量)=(20000+1256+20A1)=(232F7)=3280H下一条指令的物理地址是:下一条指令的物理地址是:6000(0)+3280=63280H汇编语言程序经翻译转换为机器语言程序,而且相互之间存在汇编语言程序经翻译转换为机器语言程序,而且相互之间存在映射关系。映射关系。例:例:ADD CL,BH机器语言为:机器语言为:00000010 11001111从左到右开始,各位的意义是:从左到右开始,各位的意义是:000000:OP(操作)(操作)1:reg为目的操作数为目的操作数0:字节操作:字节操作11:寄存器方式:寄存器方式001:reg,CL111:r/m,BH指令的执行是需要时间的指令的执行是需要时间的一条指令的执行时间是取指令、取操作数、执一条指令的执行时间是取指令、取操作数、执行指令及传送结果各个阶段所需时间的总和。行指令及传送结果各个阶段所需时间的总和。不同的指令的执行时间差别可能会很大。不同的指令的执行时间差别可能会很大。同一种指令使用不同寻址方式时执行时间相差同一种指令使用不同寻址方式时执行时间相差也可能会很大。也可能会很大。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服