令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問4
テクノロジハードウェア
この問題は2023(R5)秋 エンベデッドシステムスペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
ビッグエンディアン方式を採用しているCPUが,表のようにデータが格納された主記憶の1000番地から2バイトのデータを,16ビット長のレジスタにロードしたとき,レジスタの値はどれになるか。ここで,番地及びデータは全て16進表示である。

図の説明テキスト
| 番地 | データ |
|---|---|
| 0FFE | FE |
| 0FFF | FF |
| 1000 | 00 |
| 1001 | 01 |
解答・解説を読む
正解: 選択肢ア
エンディアン(バイトオーダ) とは、複数バイトで構成されるデータを主記憶(メモリ)に格納する際の、各バイトの並べ方のことです。主な方式として以下の2つがあります。
- ビッグエンディアン方式:データの上位バイトから順に、主記憶の若いアドレス(番地)に格納する方式です。
- リトルエンディアン方式:データの下位バイトから順に、主記憶の若いアドレス(番地)に格納する方式です。
設問の表には、1000番地に「00」、1001番地に「01」が格納されていると推測されます。
ビッグエンディアン方式では、若いアドレス(1000番地)にある「00」が上位バイトに、次のアドレス(1001番地)にある「01」が下位バイトになります。したがって、これらを結合した16ビット(2バイト)のレジスタの値は 0001 となります。
各選択肢の解説
- ア: 正解です。ビッグエンディアン方式では、1000番地の「00」が上位バイト、1001番地の「01」が下位バイトとなり、結合して
0001になります。 - イ: 1000番地に「00」、1001番地に「FF」が格納されている場合のレジスタの値です。
- ウ: リトルエンディアン方式で読み込んだ場合の値です。若いアドレス(1000番地)の「00」が下位バイト、1001番地の「01」が上位バイトとなり、結合して
0100となります。 - エ: 1000番地に「FF」、1001番地に「00」が格納されている場合のレジスタの値です。