どのようなORG指令な組み立てコードについて教えてください。
質問
参考までに、このコードは、モトローラ68008.
えいコードは、下記のような
org 200
sequenceO: ds.b 5
sequenceN: ds.b 5
move.w #sequenceO, A0
move.w #sequenceN, A1
私正しいことを考えていA0の値が200A1の値205?
一つの問題は、過去の紙のとおり:"何の物理アドレスのsequence0とsequenceN?", その答えは"200 205"は、それぞれの"200-204と205-209"?
私は見ている複数のコードを複数orgディレクティブeg;
org100
(配列1:ds.b4
org300
今すぐ見ると、昨orgディレクティブは、例えばこの場合、(配列1ポイント300?
解決
- あり、その音ですね。の住所
sequenceN
5バイトを超えてsequence0
. - "こと"によって異なりないといけないと思い、...なので"アドレス"の複数形かったの全範囲にある場合には後者の答えは正しい。
- いいえ、私は期待で複数の
org
sでのコードを以下のようになり、その場合のarray1
が生まれると考えられている$100です。でコードまたはデータ生成が後org
, では、基本的に無視されるアセンブラ.
他のヒント
私は「ORG」が「原点」を意味すると仮定 - コードまたはデータセグメントに割り当てられる最初のアドレスが放出される
はい、200 205
Sequence0開始200の広がりをもって5バイト204
いいえ、(配列1が開始100になっても、org300いで300
あなたが使用している:MOVE.W #sequenceO, A0
だから、あなたはA0
にのみアドレスの下位ワード(16ビット)をロードしています。
それは非常に低いメモリで動作します(A0
下$00010000
)
一般的に、アドレスレジスタにMOVE.W
を使用するトリッキー取得します。
試し:LEA #sequence0, A0
(A0
に32ビットのアドレスをロードする)
ほとんどのアセンブラも行います。
MOVEA.L #sequence0, A0
おかげで、デイブ小
所属していません StackOverflow