応用情報技術者試験 令和元年秋 午前問9 解説付き過去問
問題
CPUのプログラムレジスタ(プログラムカウンタ)の役割はどれか。
正解
解説
この問題は、CPU内部の「プログラムレジスタ(プログラムカウンタ)」が果たす役割について問うものです。
- プログラムカウンタの役割
プログラムカウンタ(Program Counter:PC)は、CPU内部にあるレジスタの一つで、次に実行する命令が格納されているメモリアドレスを保持しています。
命令の実行は、PCに格納されたアドレスを使ってメモリから命令を読み出すところから始まります。
その後、命令の種類に応じてPCの内容が更新され、次の命令アドレスが設定されます。 - 命令実行の流れとPCの更新
命令実行のサイクルでは、次のような流れになります:
- プログラムカウンタが示すアドレスの命令をメモリから取得
- 命令をデコード・実行
- 次に実行する命令のアドレスにプログラムカウンタを更新
- プログラムカウンタが示すアドレスの命令をメモリから取得
- 他のレジスタとの違い
プログラムカウンタは「命令アドレス」を保持しますが、
・演算のためのデータを保持するのは「汎用レジスタ」
・命令を保持するのは「命令レジスタ(IR)」
・演算結果の状態(ゼロ・キャリーなど)を保持するのは「フラグレジスタ」
といったように、各レジスタには明確な役割分担があります。
したがって、プログラムカウンタは「命令を読み出すために、次の命令が格納されたアドレスを保持する」役割を担っているのが正解です。