6

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

4

1 回答 1

11

物理地址(又名真实交易):

物理地址是总线电路在向 RAM 传输数据或从 RAM 传输数据时使用的地址(因此称为“物理地址”)。

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

绝对地址

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

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

Intel JMP(跳转)指令可以指定“相对跳转”,其中位移是相对于下一条指令的。就像是:

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

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

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

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

于 2012-07-05T17:28:11.253 回答