这些说明是什么类型的寻址?

时间:2011-09-20 02:32:10

标签: assembly

我有区分说明的问题。

mov [300], bl
mov [bx], cl

2 个答案:

答案 0 :(得分:4)

我认为[300]表示“存储在地址300的值。另一方面,[bx]表示”存储在寄存器BX中存储的地址的值“。(注意,两者都不是常量值,这只是一个赤裸的300。)

答案 1 :(得分:0)

让我们假设

bx = 0xF000
bl = 0x00   (duh)
cl = 0x10

直接寻址

mov byte ptr [300], bl

将bl(0)的内容写入地址300。

间接寻址

mov byte ptr [bx], cl

将0x10写入地址0xF000

使用直接偏移的间接寻址

mov byte ptr[bx+300], cl

将0x10写入地址0xF12C (300十进制= 12C十六进制)

x86还有更多寻址模式,请参阅:http://www.ic.unicamp.br/~celio/mc404s2-03/addr_modes/intel_addr.html

为了使问题更加复杂,这种解释对于英特尔汇编语法有效,在AT& T又称GAS语法,源和目的地相反。
这不应该关注你,因为理智的人只使用英特尔语法,它更容易使用。