命令セット・アセンブリ
リトルエンディアンのRISC-Vで、0x12345678の入ったレジスタを「sw」で番地0x100に書き込んだ。その後「lbu」で番地0x101の1バイトを読むと、値はいくらか。
- A0x34
- B0x56
- C0x78
答えと解説を見る
正解:B. 0x56
リトルエンディアンでは、値の下位のバイトから順に小さい番地へ置きます。0x12345678なら、0x100に0x78、0x101に0x56、0x102に0x34、0x103に0x12が入ります。したがって0x101の1バイトは0x56です。ビッグエンディアンなら0x100から0x12、0x34、…の順になり、0x101は0x34です。ネットワークやファイルの形式を扱うときは、この違いに注意が必要です。
- A. 0x34は番地0x102に入ります。
- B. 正しい。下位から2番目のバイトです。
- C. 0x78は番地0x100に入ります。