web-dev-qa-db-ja.com

ORG Assembly Instructionは何をしますか?

誰も私にORG指令に関する包括的な説明を与えることができますか?
アセンブリ記述アプリケーションでいつ、なぜ使用されるのですか?

X86またはAMD64でNasmを使用します。

39
sepisoad

ORGは、アセンブラーの設定に使用されますロケーションカウンター。これは、リンク時にロードアドレスに変換される場合と変換されない場合があります。絶対アドレスを定義するために使用できます。固定アドレスにある必要のある割り込みベクトルのようなものを定義する場合、または次のコードのパディングを導入したり、特定のアライメントを生成するために使用できます。

35
Paul R

ORGは、現在のセグメントに関連するコード/データの次の部分を配置する場所を示すだけです。

最終アドレスは、アセンブリ時に不明なセグメントに依存するため、固定アドレスに使用することは役に立ちません。

8
      During the assemble time ORG directive resets the MLC (memory location counter) to the address specified in the ORG directive.

構文:ORG note:符号なしの絶対値、または任意の記号または記号+を使用できます。

例:-この命令の動作を観察するには、ORGディレクティブを使用するアセンブルリストが必要です。

ロケーション
0000A4 00 89 TAB DC 256AL1(*-TAB)
0001A4 00000194 90 ORG TAB + 240
000194 F0F1F2F3F4F5F6F7 91 DC C'1234567 '

上記では、TABシンボルがMLCアドレス0A4に割り当てられています。次の命令で、ORGはMLCをTAB + 240アドレス位置に設定します。これはx'194 '(10進数で〜x'A4' + 240)です。基本的に、このセットアップは、長さ256から240番目の位置にあるテーブルをセットアップしていくつかの文字定数を保存し、TR命令に使用できるようにします。

3
kanthi kiran

ORGは、プログラムのロード元となる場所を設定します。このプログラムを別の場所にロードすると、誤ったメモリアドレスが参照され、問題が発生します。

0
snehm