平成29年度 春期 午前 問8
コンピュータ構成要素
プログラムカウンタに関する問題
CPU のプログラムレジスタ(プログラムカウンタ)の役割はどれか。
- ア演算を行うために,メモリから読み出したデータを保持する。
- イ条件付き分岐命令を実行するために,演算結果の状態を保持する。
- ウ命令のデコードを行うために,メモリから読み出した命令を保持する。
- エ命令を読み出すために,次の命令が格納されたアドレスを保持する。
答えと解説を見る
✓ これが正解エ命令を読み出すために,次の命令が格納されたアドレスを保持する。
解説
次に読み出す命令のアドレスを保持しています。
設問は、プログラムレジスタ、すなわちプログラムカウンタの役割を選ばせています。四つの記述はそれぞれ別のレジスタの説明になっているので、何を保持しているのかという一点で見分けられます。命令の実行は、次に実行する命令が置かれた番地を知り、そこから命令を読み出すところから始まります。この番地を保持しているのがプログラムカウンタで、命令を一つ読み出すたびに命令の長さのぶんだけ進み、分岐命令はこの値を書き換えることで飛び先を変えます。割込みのときに退避されて戻り番地となるのも、このレジスタです。カウンタという名が示すとおり、数えている中身は命令そのものでもデータでもなく、アドレスです。したがって、命令を読み出すために次の命令が格納されたアドレスを保持する、という記述が当てはまります。
ほかの選択肢はなぜ違うのか
- ア演算を行うために,メモリから読み出したデ…:演算に使うためメモリから読み出した値を一時的に置いておくレジスタの説明です。抱えている中身が番地ではなく値そのものである点で、役割がはっきり異なります。
- イ条件付き分岐命令を実行するために,演算結…:けた上がりやゼロといった演算の結果の様子を残しておく入れ物の説明です。条件付き分岐はこの印を見て判断しますが、飛び先の番地そのものを抱えているわけではありません。
- ウ命令のデコードを行うために,メモリから読…:読み出した命令そのものを置き、解読に回すための入れ物の説明です。番地を持つものと命令を持つものは別で、この二つは取り違えの定番になっています。
出典:平成29年度 春期 応用情報技術者試験 午前 問8
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)