どのようなORG指令な組み立てコードについて教えてください。

StackOverflow https://stackoverflow.com/questions/910647

  •  06-09-2019
  •  | 
  •  

質問

参考までに、このコードは、モトローラ68008.

えいコードは、下記のような

org 200
sequenceO: ds.b 5
sequenceN: ds.b 5

move.w #sequenceO, A0
move.w #sequenceN, A1
  1. 私正しいことを考えていA0の値が200A1の値205?

  2. 一つの問題は、過去の紙のとおり:"何の物理アドレスのsequence0とsequenceN?", その答えは"200 205"は、それぞれの"200-204と205-209"?

  3. 私は見ている複数のコードを複数orgディレクティブeg;

    org100

    (配列1:ds.b4

    org300

今すぐ見ると、昨orgディレクティブは、例えばこの場合、(配列1ポイント300?

役に立ちましたか?

解決

  1. あり、その音ですね。の住所 sequenceN 5バイトを超えて sequence0.
  2. "こと"によって異なりないといけないと思い、...なので"アドレス"の複数形かったの全範囲にある場合には後者の答えは正しい。
  3. いいえ、私は期待で複数の orgsでのコードを以下のようになり、その場合の array1 が生まれると考えられている$100です。でコードまたはデータ生成が後 org, では、基本的に無視されるアセンブラ.

他のヒント

私は「ORG」が「原点」を意味すると仮定 - コードまたはデータセグメントに割り当てられる最初のアドレスが放出される

  1. はい、200 205

  2. Sequence0開始200の広がりをもって5バイト204

  3. いいえ、(配列1が開始100になっても、org300いで300

あなたが使用している:MOVE.W #sequenceO, A0

だから、あなたはA0にのみアドレスの下位ワード(16ビット)をロードしています。 それは非常に低いメモリで動作します(A0$00010000

一般的に、アドレスレジスタにMOVE.Wを使用するトリッキー取得します。

試し:LEA #sequence0, A0A0に32ビットのアドレスをロードする)

ほとんどのアセンブラも行います。

MOVEA.L #sequence0, A0

おかげで、デイブ小

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top