物理地址和绝地地址有什么区别?

时间:2012-07-05 17:19:12

标签: memory x86

它们似乎都明确指定了实际的内存位置。物理地址和绝地地址有什么区别?

1 个答案:

答案 0 :(得分:10)

实际地址(例如真正的交易):

physical address是从RAM传输数据时总线电路使用的地址(因此是“物理”)。

它的副本是'虚拟地址',即在具有虚拟内存的计算机中,虚拟地址由应用程序使用,并在实际访问RAM时转换为物理地址。应用程序只能看到虚拟地址。这意味着应用程序代码中的所有内存引用都引用虚拟地址。

绝对地址

Absolute address实际上是在引用应用程序使用的寻址模式之一时使用的术语。因此,在提供虚拟内存的计算机中,此“绝对地址”是虚拟地址 - 因为所有应用程序代码仅涉及虚拟地址。其他寻址模式也使用虚拟地址。当然,就像我之前写的那样,虚拟地址最终会在访问RAM时映射到物理地址。

以下是'绝对地址'与它的对应物的不同之处 - 其他寻址模式(其中一种是'相对地址'):

英特尔JMP(跳转)指令可以指定“相对跳转”,其中位移相对于下一条指令。类似的东西:

“在下一条指令之前跳过N字节< - 这是PC相对寻址。

或者它可以与绝对地址一起使用,例如:

“将跳转到内存中的第N个字节” < - 这是绝对寻址。

在这两种情况下,JMP引用的地址都是虚拟地址(以对应用程序透明的方式映射到物理地址)