基于8086的汇编中的索引寻址

时间:2014-02-19 20:21:00

标签: assembly x86 x86-16

我对以下这一行感到有些困惑:

add ax, [si+4]

这是否取SI的值并为其添加4H,然后将其添加到AX

例如,我们会说AX = 1000和SI = 0010. AX的值是什么?

2 个答案:

答案 0 :(得分:2)

取> SI + 4并将其添加到AX。换句话说,它向SI添加4,从该地址(在DS段中)的内存中检索16位整数值,并将该值添加到AX。

我们不知道AX的价值是什么,因为我们不知道DS:0014的地址是什么。 :)

答案 1 :(得分:1)

首先,这是注册相对寻址模式非基于索引。

假设SI的值是0010而不是0010H

它会增加10 + 4 = 14即'E' 所以这将是DS:000E H

如果你的意思是0010H 它将是DS:0014H

最后,在第一个案例中的第15个位置和第二个案例中的第20个位置的数据段中的任何内容,其内容将被添加到AX。