プロセッサ (全52問中27問目)

No.27

主記憶の1000番地から,表のように4バイトの整数データが格納されている。これを32ビットのレジスタにロードするとき,プロセッサのエンディアンとレジスタにロードされる数値の組合せとして,正しいものはどれか。
11.gif/image-size:216×109

分類

テクノロジ系 » コンピュータ構成要素 » プロセッサ

正解

解説

エンディアン(endianness)とは、データをメモリ上にロードするときの配置の仕方です。

方式としては、ビッグエンディアン,リトルエンディアン,ミドルエンディアンの3種類があります。配置例では8ビットで1アドレスが増加すると仮定しています。
ビッグエンディアン
データの上位バイトから下位バイトへ向かって、メモリの下位アドレスから順に配置してしていく方式。16進数のデータ「00 01 02 03」を、ビッグエンディアン方式で配置していくと「00 01 02 03」となる。
リトルエンディアン
データの上位バイトから下位バイトへ向かって、メモリの上位アドレスから順に配置してしていく方式。16進数のデータ「00 01 02 03」を、リトルエンディアン方式で配置していくと「03 02 01 00」となる。
ミドルエンディアン
上の二つの配置方式よりも更に複雑な配置をする方式。
16進数のデータ「00 01 02 03」を、ミドルエンディアンの一種であるPDP-エンディアンで配置すると「01 00 03 02」となる。
ミドルエンディアンは試験は出題されなそうなので参考程度。
4バイトのデータ「00 01 02 03」をリトルエンディアンで配置すると「03020100」、ビッグエンディアンで配置すると「00010203」となるので、正解は「エ」です。

ちなみにエンディアンは、CPUア―キテクチャによって異なり、インテルのx86のCPUは「リトルエンディアン」、IBM系のメインフレーム/汎用機、Java仮想マシンでは「ビッグエンディアン」が採用されています。
© 2010-2018 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop