SkillStack
テクノロジ系4 / 25問

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

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

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

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

正解と解説を見る

【正解】ア

表では、1000番地に00、1001番地に01が格納されています。1000番地から2バイトをロードするので、読み出すバイトは1000番地の00と、その次の1001番地の01です。

ビッグエンディアンでは、複数バイトのデータの最上位バイトを小さい番地に格納します。したがって、1000番地の00が16ビット値の上位8ビット、1001番地の01が下位8ビットになります。二つを順に並べると、 上位バイト00|下位バイト01=0001 となるので、アが正解です。

イの00FFは誤りです。FFは1000番地より前の0FFF番地に格納されたデータであり、1000番地から始まる2バイトの範囲には含まれません。

ウの0100は誤りです。これは1000番地の00を下位バイト、1001番地の01を上位バイトとして解釈した値であり、リトルエンディアンの場合の並べ方です。

エのFF00は誤りです。これは0FFF番地のFFと1000番地の00を連結した値に相当しますが、ロード開始番地を0FFF番地と取り違えています。今回参照するのは1000番地と1001番地です。

【ポイント】 ビッグエンディアンでは、最上位バイトを最も小さい番地に格納します。 リトルエンディアンでは、最下位バイトを最も小さい番地に格納します。 まずロード対象となる連続した番地を確定し、その後でバイト順を判断することが大切です。

出典:令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問4
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める