8086⼀8088可用于间接寻址的寄存器有哪些

8086/8088可用于间接寻址的寄存器有哪些
2024-12-21 20:21:14
推荐回答(3个)
回答1:

这是计算机组成原理及汇编里面的吧。
这种方式下,操作数的有效地址EA不像直接寻址那样直接放在指令中,而是通过基址寄存器BX,BP或变址寄存器SI、DI中的任一个寄存器的内容间接得到的,即称这四个寄存器为间址寄存器。由四个间址寄存器确定的操作数可在两种段中:
EA = (BX)
(BP)
(SI)
(DI)
(1)指令中指定BX、SI、DI为间址寄存器,则操作数在数据段中。这种情况下,用DS寄存器内容作段首址,操作数的实际地址为:
PA=16×(DS)+ (BX)
(SI)
(DI)
例如: MOV AX,[SI]
若已知(DS)=2000,(SI)=1000H,则PA=21000H,该指令将把数据段中21000H单元和21001 H相邻两个单元的内容传送到AX。

图3-2 寄存器间接寻址示意图

(2)指令中若指定BP为间址寄存器,则操作数在堆栈段中。这种情况下,用SS寄存器内容作段首址,操作数的实际地址为:

PA=16×(SI)+(BP)

使用寄存器间接寻址方式时应注意:

(1)在指令中,也可指定段超越前缀来取得其它段中的操作数。如:

MOV AX, ES:[BX]

(2)寄存器间接寻址方式可以用来对一维数组或表格进行处理,只要改变间址寄存器BX,BP,SI,DI中的内容,用一条寄存器间接寻址指令就可对连续的存储器单元进行存/取操作。
书上应该有的更详细一点~

回答2:

BX,BP,SI,DI,SP

回答3:

BX SI DI BP