首页 百科知识 相对基址变址寻址方式

相对基址变址寻址方式

时间:2023-02-19 百科知识 版权反馈
【摘要】:2.2.7 相对基址变址寻址方式操作数的有效地址是一个基址和一个变址寄存器的内容和指令中给定的一个位移量之和。两种寄存器均由指令指定。默认使用段寄存器的情况由所选用的基址寄存器决定。使用这种寻址方式可以访问形如DISP[3][2]的二维数组,下标从0开始计数。

2.2.7 相对基址变址寻址方式

操作数的有效地址是一个基址(BX、BP)和一个变址寄存器(SI、DI)的内容和指令中给定的一个位移量(DISP)之和。两种寄存器均由指令指定。位移量可以是一个字节、一个字的带符号数。默认使用段寄存器的情况由所选用的基址寄存器决定。若使用BP,则默认与SS配合;若使用BX,则默认与DS配合。允许使用段超越前缀,即:

【例2-14】 MOV AL,DISP[BX][SI]

该指令也可以表示为:MOV AL,DISP[BX+SI]

或MOV AL,[BX+SI+DISP]

其执行结果为:(DS:[BX+SI+DISP])→AL

若(DS)=3000H,(BX)=6780H,(SI)=0041H,(DISP)=0200H,(369C1H)=12H,则

物理地址=(DS)×16d+(BX)+(SI)+(DISP)=369C1H

该指令的执行结果是(AL)=12H,指令执行情况如图2-8所示。

使用这种寻址方式可以访问形如DISP[3][2]的二维数组,下标从0开始计数。假设数组在内存中以行的形式存放(即先存第一行的所有元素,然后依次存第二行……),其中DISP为数组起始地址的偏移量,基址寄存器(例如BX)为某行首与数组起始地址的距离(即BX=行下标×一行占用的字节数),变址寄存器(例如SI)为某列与所在行首的距离(即SI=列下标×元素长度),若保持BX不变而SI改变,则可以访问同一行的所有元素;若保持SI不变而BX改变,则可以访问同一列的所有元素。

图2-8 例2-14执行情况

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈