応用情報技術者 2017年 春期 午前2 問08
問題文
CPUのプログラムレジスタ (プログラムカウンタ)の役割はどれか。
選択肢
ア:演算を行うために、メモリから読み出したデータを保持する。
イ:条件付き分岐命令を実行するために、演算結果の状態を保持する。
ウ:命令のデコードを行うために、メモリから読み出した命令を保持する。
エ:命令を読み出すために、次の命令が格納されたアドレスを保持する。(正解)
CPUのプログラムレジスタ (プログラムカウンタ)の役割はどれか【午前2 解説】
要点まとめ
- 結論:プログラムカウンタは「次に実行する命令のアドレスを保持」し、命令の順次実行を制御します。
- 根拠:CPUは命令を順番に実行するため、次の命令の位置を示すレジスタが必要です。
- 差がつくポイント:プログラムカウンタと命令レジスタやフラグレジスタの役割を正確に区別できるかが重要です。
正解の理由
プログラムカウンタ(PC)は、CPUが次に実行すべき命令のメモリアドレスを保持します。命令のフェッチ段階でこのアドレスを使い、命令をメモリから読み出します。命令実行後は通常、PCの値が次の命令アドレスに更新され、プログラムの順次実行を可能にします。したがって、選択肢エ「命令を読み出すために、次の命令が格納されたアドレスを保持する」が正解です。
よくある誤解
プログラムカウンタは命令そのものや演算結果を保持するレジスタではありません。命令の内容を保持するのは命令レジスタ、演算結果の状態を保持するのはフラグレジスタです。
解法ステップ
- CPUの基本構成要素とレジスタの役割を理解する。
- プログラムカウンタの名称から「プログラムの位置を示す」役割を連想する。
- 各選択肢の内容をレジスタの役割と照らし合わせて検証する。
- 命令のフェッチ段階で使われるレジスタがプログラムカウンタであることを確認する。
- 正解の選択肢エを選ぶ。
選択肢別の誤答解説
- ア: メモリから読み出したデータを保持するのは「汎用レジスタ」や「データレジスタ」であり、プログラムカウンタの役割ではありません。
- イ: 演算結果の状態を保持するのは「フラグレジスタ(ステータスレジスタ)」であり、プログラムカウンタとは異なります。
- ウ: 命令のデコードを行うために命令を保持するのは「命令レジスタ」であり、プログラムカウンタは命令のアドレスを保持します。
- エ: 命令を読み出すために次の命令が格納されたアドレスを保持するのがプログラムカウンタの正しい役割です。
補足コラム
プログラムカウンタは「命令ポインタ」とも呼ばれ、CPUの制御フローの要です。分岐命令やジャンプ命令が実行されると、プログラムカウンタの値は変更され、プログラムの実行順序が変わります。これにより条件分岐やループ処理が可能になります。
FAQ
Q: プログラムカウンタは命令の内容を保持しますか?
A: いいえ、命令の内容は命令レジスタが保持し、プログラムカウンタは命令のアドレスを保持します。
A: いいえ、命令の内容は命令レジスタが保持し、プログラムカウンタは命令のアドレスを保持します。
Q: プログラムカウンタはどのように更新されますか?
A: 通常は次の命令アドレスに自動的にインクリメントされますが、分岐命令などで変更されることもあります。
A: 通常は次の命令アドレスに自動的にインクリメントされますが、分岐命令などで変更されることもあります。
関連キーワード: プログラムカウンタ、命令フェッチ、CPUレジスタ、命令実行、制御フロー

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

