寻址模式中偏移和索引之间的差异?

时间:2015-02-11 02:43:54

标签: computer-architecture addressing

http://en.wikipedia.org/wiki/Addressing_mode

  

绝对索引

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

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

     

请注意,这与 base-plus-offset 寻址模式大致相同,只是在这种情况下偏移量足以解决任何内存位置。

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

感谢。

1 个答案:

答案 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,我正在编辑这篇文章。 : - )