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

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ア
表では、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に質問できる