令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問4
テクノロジハードウェアプロセッサ・性能計算
ビッグエンディアン方式を採用しているCPUが,表のようにデータが格納された主記憶の1000番地から2バイトのデータを,16ビット長のレジスタにロードしたとき,レジスタの値はどれになるか。ここで,番地及びデータは全て16進表示である。

図の説明テキスト
| 番地 | データ |
|---|---|
| 0FFE | FE |
| 0FFF | FF |
| 1000 | 00 |
| 1001 | 01 |
解答・解説
正解: ア. 0001
ビッグエンディアンとは
ビッグエンディアンとは、複数バイトのデータを主記憶(メモリ)に格納する際に、データの上位バイトから順に若い(小さい)番地へ配置していく方式です。例えば、2バイトのデータを格納する場合、最初の番地に上位1バイトを、次の番地に下位1バイトを格納します。
正解の根拠
主記憶の1000番地から2バイトのデータを読み込みます。表に示された番地とデータは以下の通りです。
- 1000番地:
- 1001番地:
ビッグエンディアン方式を採用しているため、若い番地である1000番地のデータが上位バイトに、続く1001番地のデータが下位バイトになります。
- 上位バイト:
- 下位バイト:
これらを組み合わせると「」となります。したがって、16ビット長のレジスタにロードされる値は です。
各選択肢の解説
ア: 正解。1000番地からビッグエンディアン方式で2バイトを読み込んだ正しい値です。
イ: 1000番地のデータを上位バイトに、0FFF番地のデータを下位バイトにして組み合わせた値であり、読み込む対象の番地が誤っています。
ウ: 1001番地のデータを上位バイトに、1000番地のデータを下位バイトにして組み合わせた値です。これはリトルエンディアン方式で読み込んだ場合の値であり、誤っています。
エ: 0FFF番地のデータを上位バイトに、1000番地のデータを下位バイトにして組み合わせた値であり、読み込む対象の番地が誤っています。