平成23年度 特別 午前 問10
コンピュータ構成要素
ベースレジスタに関する問題
“LOAD GR, B, AD”は,AD が示す番地にベースレジスタ B の内容を加えた値を有効アドレスとして,その有効アドレスが示す主記憶に格納されているデータを汎用レジスタ GR にロードする命令である。
図の状態で,次の命令を実行したとき,汎用レジスタ GR にロードされるデータはどれか。
LOAD GR, 1, 200
〔図〕
ベースレジスタ1 [ 100 ]
主記憶
番地 │ 内容
─────┼──────
100 │ 1100
101 │ 1101
⋮ │ ⋮
200 │ 1200
201 │ 1201
⋮ │ ⋮
300 │ 1300
301 │ 1301
⋮ │ ⋮
1200 │ 2200
1201 │ 2201
⋮ │ ⋮
1300 │ 2300
1301 │ 2301- ア1201
- イ1300
- ウ2200
- エ2300
答えと解説を見る
✓ これが正解イ1300
解説
足して有効アドレスを作り、その中身を一度だけ取ります。
この命令は二段で読みます。まず有効アドレスを作り、次にそこに入っているデータを取り出します。有効アドレスは、命令に書かれた番地に、指定されたベースレジスタの中身を足したものです。ここではベースレジスタに100が入っていて、命令が示す番地は200ですから、足して300が有効アドレスになります。あとは300番地に格納されている値をそのまま汎用レジスタに移すだけで、そこで終わりです。判定の軸は、足す相手をレジスタの中身にしているか、そして取り出した値をもう一度番地として読み直していないかの二点です。
ほかの選択肢はなぜ違うのか
- ア1201:足す相手を、レジスタの中身ではなくレジスタの番号にしてしまった形です。201番地に置かれている値であり、加えた量が100ではなく1になっています。
- ウ2200:ベースレジスタの中身を足さないまま200番地を読み、そこにあった値をもう一度番地とみなして読み直した値です。足し忘れと読み直しという二つの誤りが重なっています。
- エ2300:有効アドレスは正しく300と求められていますが、そこから取り出した値をさらに番地として読み直しています。この命令にその一段は含まれていません。
出典:平成23年度 特別 基本情報技術者試験 午前 問10(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)