computer-architecture - 寻址模式中偏移量和索引之间的区别?

标签 computer-architecture addressing

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

Indexed absolute

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

(Effective address = address + contents of specified index register)

Note that this is more or less the same as base-plus-offset addressing mode, except that the offset in this case is large enough to address any memory location.



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

谢谢。

最佳答案

偏移量是绝对字节数。因此,如果地址 = 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

话虽如此,当我阅读维基百科文章时,我看不出“绝对索引”、“基本加索引”和“缩放”之间的区别。它看起来完全一样,只是术语“地址”和“基址”互换了。在我看来,这就像太多作者重新写同样的东西一样。如果此回复获得足够的赞成票,我正在编辑这篇文章。 :-)

关于computer-architecture - 寻址模式中偏移量和索引之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445708/

相关文章:

Verilog 双向握手示例

Linux 页表管理和 MMU

css - 无法在 Spring MVC 应用程序中从 CSS 访问图像文件

ARM 程序计数器的特点

c++ - 为所有 iOS 架构编译 c++ 文件

computer-architecture - 字长和数据总线

dyld - PIE 禁用。代码签名的 PIE 中不允许使用绝对寻址

ip - IP地址和MAC地址有什么区别?

c++ - 为什么要添加地址?

memory-management - 寻址模式如何在物理层面上工作?