在http://en.wikipedia.org/wiki/Addressing_mode
中绝对索引
+------+-----+-----+--------------------------------+ | load | reg |index| address | +------+-----+-----+--------------------------------+
(有效地址=地址+指定索引的内容 寄存器)
请注意,这与 base-plus-offset 寻址模式大致相同,只是在这种情况下偏移量足以解决任何内存位置。
我仍然不明白偏移和索引之间有什么区别?基极加偏移寻址模式和索引绝对寻址模式之间的区别?
感谢。
答案 0 :(得分:5)
偏移量是绝对字节数。因此,如果地址= 0x1000且偏移= 0x100,则有效地址= 0x1000 + 0x100 = 0x1100。
索引是一个乘以常数的偏移量。因此,如果address = 0x1000且index = 0x100且element的大小= 4,则address = 0x1000 + 0x100 * 4 = 0x1400。索引到32位值数组时会使用它。
对我来说,地址+索引示例听起来像x86 LEA指令: http://www.cs.virginia.edu/~evans/cs216/guides/x86.html#instructions
话虽如此,当我阅读维基百科的文章时,我看不出“索引绝对”“基础加索引”和“缩放”之间的区别。它看起来完全相同,除了术语“地址”和“基数”互换。这看起来像是太多作者再次写同样的东西。如果这个响应得到足够的upvotes,我正在编辑这篇文章。 : - )