2016-05-30 9 views
0

私は「低レベル」のプログラミングには新しく、実際にはEclipse内でいくつかのコードを実行しています。 eclipse内の "Disassembly view"では、最初の列はメモリアドレスを表します。 「ダミー」質問、異なる種類の物理メモリ表現ですか?

ので
000936fc: E5DCC000 LDRB   R12, [R12] 
00093700: E35C0000 CMP    R12, #0 

: 私はこのようにようにメモリの表現のみを知っている:

0x5600000: 

0x825ffff: 

ので、最初の例のメモリ・アドレスである、それは次のようになります次のようなものですか? :

0x0936fc 
0x093700 

答えて

1

あなたの質問には複数の解釈があります。最も簡単なのは「なぜこれらのアドレスが短いのか」です。答えは、プログラムカウンターのワード長まで拡張されていることです。

別の可能性のある質問は、これらのアドレスが異なる理由です。私はEclipseのデバッグメニューに慣れていないので、それらの番号をどこから派生させるかについていくつか仮定します。 Eclipseが他のデバッガと同様の情報を提供すれば、リンカの手作業を見るだけです。

これらのアドレスは広く仮想アドレスと呼ばれ、relocationsの結果であり、列挙するにはあまりにも多くの理由のために課される可能性があります。

関連する問題