首页 理论教育 直接寻址方式

直接寻址方式

时间:2022-02-28 理论教育 版权反馈
【摘要】:[7809H]为直接寻址方式。注意7809H用[]括起来,表示是有效地址而不是操作数,即真正的操作数在内存单元中,这也是直接寻址方式与立即寻址方式在汇编格式上的区别。实际上在汇编语言源程序中所看到的直接寻址方式通常都是用符号表示的,如例2-6的78H可以用变量VAR表示。VAR是程序中定义的一个内存变量,它表示内存某单元的符号地址,是直接寻址方式的典型表示。

2.2.3 直接寻址方式

操作数的有效地址(偏移地址)直接包含在指令中的寻址方式。这种寻址方式其操作数本身在内存中。如表2-1所示,普通变量的默认情况是存放在DS所指向的数据段,但允许使用段超越前缀指定为其他段。这种寻址方式常用于存取简单变量。

【例2-5】 MOV AL,[7809H]

[7809H]为直接寻址方式。注意7809H用[]括起来,表示是有效地址而不是操作数,即真正的操作数在内存单元中,这也是直接寻址方式与立即寻址方式在汇编格式上的区别。按照访问内存变量的默认情况,该指令的源操作数应来自于DS所指向的段,执行结果是把DS:7809H单元中的内容送给寄存器AL。

【例2-6】 若DS=3000H,(30078H)=12H,则有效地址[0078H]表示物理地址为30078H,指令MOV AL,[0078H]的执行结果是(AL)=12H,指令执行情况见图2-4所示。

img30

图2-4 例2-6执行情况

实际上在汇编语言源程序中所看到的直接寻址方式通常都是用符号表示的,如例2-6的78H可以用变量VAR表示。只有在DEBUG环境下,才有[78H]这样的表示。

【例2-7】 MOV BX,VAR

VAR是程序中定义的一个内存变量,它表示内存某单元的符号地址,是直接寻址方式的典型表示。它所对应的偏移量(具体的EA)经过汇编后才能确定。

直接寻址方式前可以使用段超越前缀,如例2-8所示。

【例2-8】 MOV AL,ES:[78H]

该指令的源操作数前使用了段超越前缀“ES:”,明确表示使用附加数据段中的变量,

执行结果是(ES:78H)→AL。

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

我要反馈