0

私は MIPS を使用しており、ユーザーの整数入力を受け取り、後で特定の形式で出力される配列に値を格納するプログラムを作成しました。

メモリは次のように宣言されます。

point_array:

.align 2
.space 1024

私もプログラムを実行しましたが.align 4、値はまったく同じ方法でメモリに保存されます。の効果を完全に把握しているとは思わず.align、メモリを 2 と 4 に揃えても同じ結果が得られる理由を知りたいと思います。

4

1 に答える 1

1

「整列」とは、次のアドレスが 2^n の倍数でなければならないことを意味します。「.align」は、これをアーカイブするためにいくつかのダミー バイトを挿入します。

例: アドレス 0x123400F に「.align 4」命令を挿入すると、1 バイトが挿入されます。「.align 1」も 1 バイトを挿入します。

ただし、アドレス 0x1234012 で 2 つの命令を使用すると、「.align 1」は何も実行されませんが、「.align 4」は 14 バイトを挿入します。

于 2013-09-26T19:28:00.760 に答える