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

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ア
図表を確認すると、1000番地には00、次の1001番地には01が格納されています。ビッグエンディアンでは、複数バイトのデータの上位バイトを小さい番地に、下位バイトを大きい番地に格納します。したがって、1000番地の00が16ビット値の上位8ビット、1001番地の01が下位8ビットになります。計算すると、00×100+01=0001です。ここで100は16進数であり、10進数の256に相当します。よって、レジスタの値は0001となり、アが正解です。
イの00FFは誤りです。1000番地から読み出す2バイトは00と01であり、直前の0FFF番地にあるFFは対象に含まれません。
ウの0100は誤りです。これは1000番地の00を下位バイト、1001番地の01を上位バイトとして結合した値であり、リトルエンディアンとして解釈した場合の値です。
エのFF00は誤りです。これは0FFF番地から2バイトをビッグエンディアンで読み出し、FFと00を結合した場合の値です。今回の読出し開始番地は1000です。
【ポイント】 ビッグエンディアンは「上位バイトを小さい番地」に格納します。 リトルエンディアンは「下位バイトを小さい番地」に格納します。 まず開始番地から必要なバイトだけを抜き出し、その後に並びを判断すると確実です。
出典:令和2年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問2
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる