物理地址和绝对地址有何区别?

7

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

1个回答

12

物理地址(也称为真实地址):

物理地址是总线电路在将数据传输到和从内存中传输时使用的地址(因此称为“物理”地址)。

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

绝对地址

绝对地址是指一个应用程序使用的寻址模式之一。因此,在提供虚拟内存的计算机中,“绝对地址”也是虚拟地址,因为所有应用程序代码都只会引用虚拟地址。其他寻址模式也使用虚拟地址。当然,正如我之前所写的那样,实际访问RAM时,虚拟地址最终映射到物理地址。

下面是“绝对地址”与其他寻址模式(其中之一是“相对地址”)不同的方式:

Intel的JMP(跳转)指令可能会指定一个“相对跳转”,其中位移是相对于下一条指令的。类似于:

“跳转N个字节向前下一条指令” <- 这是基于PC(程序计数器)的寻址。

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

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

在这两种情况下,被JMP跳转引用的地址都是虚拟地址(在透明地映射到应用程序的物理地址)。


@pst - 现在呢?(我在末尾添加了它) - ArjunShankar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接