主記憶の1000番地から、表のように4バイトの整数データが格納されている。これを32ビットのレジスタにロードするとき、プロセッサのエンディアンとレジスタにロードされる数値との組合せとして、正しいものはどれか。
┌───────┬───┐
│バイトアドレス│データ│
├───────┼───┤
│ 1000 │ 00 │
├───────┼───┤
│ 1001 │ 01 │
├───────┼───┤
│ 1002 │ 02 │
├───────┼───┤
│ 1003 │ 03 │
└───────┴───┘
┌─────────┬─────────┐
│リトルエンディアン│ビッグエンディアン│
┌─┼─────────┼─────────┤
│ア│ 00010203 │ 02030001 │
├─┼─────────┼─────────┤
│イ│ 00010203 │ 03020100 │
├─┼─────────┼─────────┤
│ウ│ 02030001 │ 00010203 │
├─┼─────────┼─────────┤
│エ│ 03020100 │ 00010203 │
└─┴─────────┴─────────┘
エ
例えば 0xA1B2C3D4 という4バイトのデータをメモリに格納する時
リトルエンディアンでは、D4 C3 B2 A1 の順に配置され、
ビッグエンディアンでは、A1 B2 C3 D4 の順に配置される。
データを00、01、02、03の順でレジスタにロードすると
リトルエンディアンでは、03、02、01、00
ビッグエンディアンでは、00、01、02、03となる。
問10 | 目次 | 問12 |