2015-02-11 111 views
3

http://en.wikipedia.org/wiki/Addressing_mode寻址模式中偏移和索引之间的差异?

索引绝对

+------+-----+-----+--------------------------------+ 
    | load | reg |index|   address    | 
    +------+-----+-----+--------------------------------+ 

(有效地址=地址+指定索引 寄存器的内容)

注意,这是更或相同基少-plus-offset寻址模式,除了这种情况下的偏移量足够大以寻址任何存储器位置。

我仍然不明白偏移和索引之间有什么区别?基址加偏移量寻址模式和索引绝对寻址模式之间的区别?

谢谢。

回答

4

偏移量是绝对字节数。所以如果地址= 0x1000和偏移量= 0x100那么有效地址= 0x1000 + 0x100 = 0x1100。

索引是乘以常数的偏移量。因此,如果地址= 0x1000和索引= 0x100,元素大小= 4,则地址= 0x1000 + 0x100 * 4 = 0x1400。索引到32位值的数组时,您可以使用它。

对我来说,地址+指数例子听起来像86 LEA指令: http://www.cs.virginia.edu/~evans/cs216/guides/x86.html#instructions

随着中说,当我读了维基百科的文章,我看不到“索引绝对”“基地之间的差异加索引“和”缩放“。它看起来像完全一样的东西,除了术语“地址”和“基地”互换。这看起来像太多的作家一样写了同样的东西。如果此响应得到足够的提示,我正在编辑文章。 :-)