相对基址加变址寻址方式
(2011-05-18 23:03:53)
标签:
it |
分类: c语言和汇编语言 |
操作数在存储器中,操作数的有效地址
由基址寄存器之一的内容与变址寄存器之一的内容
及指令中给定的8位或16位位移量相加得到。
即:EA
=
在一般情况下,如果BP之内容作为有效地址的一部分,
则以SS段寄存器之内容为段值,
否则以DS段寄存器之内容为段值。
在指令中给定的8位或16位位移量采用补码形式表示。
在计算有效地址时,如果偏移量是8位,那么被带符号扩展成16位。
当所得的有效地址超过FFFFH时,就取其64K的模。
例如:MOV AX,[BX+DI-2]
假设,(DS) = 5000H,(BX) = 1223H,
(DI) = 54H,(51275) = 54H
(51276) = 76H
16位(-2)=0000 0000 0000 0010取反加一
那么,存取的物理存储单元是多少呢?
物理地址 = 50000 + 01223 + 00054 + FFFFE = 51275H
在执行该指令后,(AX) = 7654H。
相对基址加变址这种寻址方式的表示方法多种多样,下面四种表示方法均是等价的:
MOV AX,[BX+DI+1234H]
MOV AX, 1234H[BX][DI]
MOV AX, 1234H[BX+DI]
MOV AX, 1234H[DI][BX]

加载中…