SkillStack
テクノロジ系2 / 25問

エンベデッドシステムスペシャリスト試験 令和2年度 秋期 午前II 問2

ビッグエンディアン方式を採用しているCPUが、表のようにデータが格納された主記憶の1000番地から2バイトのデータを、16ビット長のレジスタにロードしたとき、レジスタの値はどれになるか。ここで、番地及びデータは全て16進表示である。

エンベデッドシステムスペシャリスト試験 令和2年度 秋期 午前II 問2の図表

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ア

図表を確認すると、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に質問できる
SkillStackで無料で始める