【问题标题】:Diference between offset and Index in addressing modes?寻址模式中偏移量和索引之间的区别?
【发布时间】:2015-04-11 07:31:59
【问题描述】:
在http://en.wikipedia.org/wiki/Addressing_mode
索引绝对值
+------+-----+-----+--------------------------------+
| load | reg |index| address |
+------+-----+-----+--------------------------------+
(有效地址=地址+指定索引的内容
注册)
请注意,这或多或少与 base-plus-offset 寻址模式相同,只是这种情况下的偏移量大到足以寻址任何内存位置。
我还是不明白 offset 和 index 有什么区别?以及base-plus-offset寻址方式和Indexed absolute寻址方式的区别?
谢谢。
【问题讨论】:
标签:
computer-architecture
addressing
【解决方案1】:
偏移量是绝对字节数。所以如果地址 = 0x1000 并且偏移量 = 0x100 那么有效地址 = 0x1000 + 0x100 = 0x1100。
索引是乘以常数的偏移量。因此,如果地址 = 0x1000 且索引 = 0x100 且元素大小 = 4,则地址 = 0x1000 + 0x100*4 = 0x1400。当索引到一个 32 位值的数组时,你会使用它。
对我来说,地址+索引示例听起来像 x86 LEA 指令:
http://www.cs.virginia.edu/~evans/cs216/guides/x86.html#instructions
话虽如此,当我阅读 Wikipedia 文章时,我看不出“Indexed absolute”“Base plus index”和“Scaled”之间的区别。它看起来完全一样,除了术语“地址”和“基地”互换了。在我看来,这看起来像太多的作者在重复写同样的东西。如果这个回复得到足够多的支持,我正在编辑这篇文章。 :-)