6

どちらも、実際のメモリ位置を明示的に指定しているようです。物理アドレスと絶対アドレスの違いは何ですか?

4

1 に答える 1

11

住所(別名本物):

物理アドレスは、RAMとの間でデータを転送するときにバス回路(したがって「物理」)によって使用されるアドレスです。

その対応物は「仮想アドレス」です。つまり、仮想メモリを備えたコンピュータでは、仮想アドレスはアプリケーションによって使用され、実際にRAMにアクセスするときに物理アドレスに変換されます。アプリケーションは仮想アドレスのみを認識します。これは、アプリケーションコード内のすべてのメモリ参照が仮想アドレスを参照していることを意味します。

絶対アドレス

絶対アドレスは、実際には、アプリケーションで使用されるアドレッシングモードの1つを指すときに使用される用語です。したがって、仮想メモリを提供するコンピュータでは、この「絶対アドレス」は仮想アドレスであります。これは、すべてのアプリケーションコードが仮想アドレスのみを参照するためです。他のアドレッシングモードも仮想アドレスを使用します。もちろん、前に書いたように、仮想アドレスは、RAMにアクセスするときに最終的に物理アドレスにマップされます。

「絶対アドレス」が対応するものとどのように異なるかを次に示します他のアドレッシングモード(そのうちの1つは「相対アドレス」)です。

Intel JMP(ジャンプ)命令は、変位が次の命令に相対的である「相対ジャンプ」を指定する場合があります。何かのようなもの:

「次の命令の前にNバイトジャンプする」 <-これはPC相対アドレス指定です。

または、次のように絶対アドレスで使用することもできます。

「メモリ内のN番目のバイトにジャンプする」 <-これは絶対アドレス指定です。

どちらの場合も、によって参照されるJMPアドレスは仮想アドレスです(アプリケーションに対して透過的な方法で物理アドレスにマップされます)

于 2012-07-05T17:28:11.253 に答える