私はこのコースを受講しており、私は指示.align
の概念を理解することに本当に苦労しています。アセンブリーMIPSの.ALIGNとメモリアドレス指定の理解
は、ここで私は理解できませんでした、例です:
私はデータセグメント内など、0x10010000,0x10010020で始まるアドレスがあることを知っています。
私は各アドレスの中に8つのメモリフィールドがあり、それぞれに32ビットがあることを知っています。
ここで、わからないことは、どうやってvar2
がアドレス0x10010010の中にあるのですか? str1
は、var1
の3ビットを予約しているため、アドレス0x10010003の内部にあります。
最後のことは、ちょうど指示.align' doing? when I tested it in Mars4, it only shifted the data into the next memory field when I used
が3行以上整列することですが、実際にはそれを取得しません。
これは非常に混乱している人には申し訳ありませんが、私はここで絶望的です。
私の答えは電話で入力していましたが、あなたのものは別のものの必要性を取り除いていませんでした。 – gnometorule
あなたのお返事ありがとうございます!質問:0x10010010はどのように4の倍数ですか? – Sobiaholic
0x10010010 = 2^28 + 2^16 + 2^4、これは4の掛け算です。計算に意味がない場合は、16進数で再度読んでください。 – gnometorule