Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私は MIPS を使用しており、ユーザーの整数入力を受け取り、後で特定の形式で出力される配列に値を格納するプログラムを作成しました。
メモリは次のように宣言されます。
point_array:
.align 2 .space 1024
私もプログラムを実行しましたが.align 4、値はまったく同じ方法でメモリに保存されます。の効果を完全に把握しているとは思わず.align、メモリを 2 と 4 に揃えても同じ結果が得られる理由を知りたいと思います。
.align 4
.align
「整列」とは、次のアドレスが 2^n の倍数でなければならないことを意味します。「.align」は、これをアーカイブするためにいくつかのダミー バイトを挿入します。
例: アドレス 0x123400F に「.align 4」命令を挿入すると、1 バイトが挿入されます。「.align 1」も 1 バイトを挿入します。
ただし、アドレス 0x1234012 で 2 つの命令を使用すると、「.align 1」は何も実行されませんが、「.align 4」は 14 バイトを挿入します。