正答4
解説
正解は4です。
CPU内の主なレジスタの役割を区別する問題です。
プログラムレジスタ(プログラムカウンタ)は、命令の取出し(フェッチ)に使うアドレスを管理します。
【選択肢別解説】
1:× メモリから読み出した演算対象のデータを保持するのは、汎用レジスタやアキュムレータです。
プログラムレジスタはデータではなく命令のアドレスを保持します。
2:× 演算結果の状態(ゼロ、負、桁あふれなど)を保持するのは、フラグレジスタ(ステータスレジスタ)です。
条件付き分岐命令は、この内容を参照して分岐するかどうかを決めます。
3:× デコードのために、メモリから読み出した命令そのものを保持するのは命令レジスタです。
4:○ プログラムレジスタは、次に実行する命令が格納されている主記憶のアドレスを保持します。
命令を取り出すたびに次の命令のアドレスに更新され、分岐命令では分岐先のアドレスに書き換えられます。
【ポイント】
「次の命令のアドレス」を持つのがプログラムカウンタ、「今の命令そのもの」を持つのが命令レジスタです。
命令はフェッチ、デコード、実行の順に処理されると整理しておくと、各レジスタの役割を区別しやすくなります。