汇编语言中什么是直接寻址和间接寻址 直接和间接的区别是什么?

2025-01-04 15:33:36
推荐回答(2个)
回答1:

一、直接寻址方式
指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。
在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。

MOVBX,[1234H]
二、寄存器间接寻址方式
操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。
在不使用段超越前缀的情况下,有下列规定:
若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;
若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆栈段)。

MOVBX,[DI]

回答2:

mov [1245h],ax
直接用数值码指定地址,就是直接寻址

mov [bx],ax
用寄存器寻址,就是间接,还可以[bx+si]等多种方式