第4章 リトルエンディアン形式 |
複数バイトのデータをメモリに格納する際にCPUによっては、上位のバイトからメモリの上位バイトに格納していく形式と、上位のバイトからメモリの下位に格納していく形式があります。
たとえば、unsigned long int(符号なし32ビット整数)で内容が00 FE 2E EFというデータをメモリに保存する場合、次の2通りがあります。
ビッグエンディアン形式
+00 | +01 | +02 | +03 | |
0000 | 00 | FE | 2E | EF |
リトルエンディアン形式
+00 | +01 | +02 | +03 | |
0000 | EF | 2E | FE | 00 |
このように、データの上位バイトと下位バイトを反転させてメモリに格納する形式をリトルエンディアンと呼びます。逆に反転させないでそのまま格納することをビッグエンディアンと呼びます。
Dreamcastに内蔵のSH4では、リトルエンディアン方式を採用しているため、バイトデータ以外はすべて、リトルエンディアンでメモリに格納する必要があります。
たとえば、“ICONDATA_VMS”の中にある“モノクロアイコンデータの先頭アドレス”は、00 00 00 20を指定する必要があるので、メモリに格納する場合は、20 00 00 00という並びで格納します。また、符号なし16ビットデータ(00 FF)をメモリに格納する場合は、FF 00の順で格納します。
[←] | [INDEX] | [→] |
(C)SEGA ENTERPRISES, LTD., 1998