令和2年度 10月 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2
テクノロジ/コンピュータ構成要素ビッグエンディアン方式を採用している CPU が,次のようにデータが格納された主記憶の 1000 番地から 2 バイトのデータを,16 ビット長のレジスタにロードしたとき,レジスタの値はどれか。ここで,番地及びデータは全て 16 進表示である。(番地:データ)0FFE:FE,0FFF:FF,1000:00,1001:01 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:令和2年度 10月 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2
- ア0001
- イ00FF
- ウ0100
- エFF00
正解:ア
解説
ビッグエンディアン方式では,複数バイトのデータのうち最上位バイト(MSB)を最も若い(小さい)アドレスに格納します。1000 番地のデータ 00 が上位バイト,1001 番地のデータ 01 が下位バイトとなるので,16 ビットレジスタにロードした値は上位バイトを 00,下位バイトを 01 として並べた 0001 になります。
選択肢ごとの解説
- ア正しい。ビッグエンディアンでは若いアドレス(1000 番地)のデータ 00 が上位バイト,次のアドレス(1001 番地)のデータ 01 が下位バイトとなるため,レジスタの値は 0001 です。
- イ誤り。00FF は 0FFE,0FFF 番地のデータをそのまま並べた値であり,問題で指定された 1000 番地からのロードとは異なるアドレスのデータです。
- ウ誤り。0100 はビッグエンディアンではなくリトルエンディアン(下位アドレスを下位バイトとする方式)で解釈した場合の値であり,本問の前提と矛盾します。
- エ誤り。FF00 は 0FFE,0FFF 番地のデータをリトルエンディアンとして解釈した値であり,指定されたアドレスや採用方式のいずれとも一致しません。