平成29年度春期 応用情報技術者試験 午前 問8
CPUのプログラムレジスタ(プログラムカウンタ)の役割はどれか。
- ア 演算を行うために,メモリから読み出したデータを保持する。
- イ 条件付き分岐命令を実行するために,演算結果の状態を保持する。
- ウ 命令のデコードを行うために,メモリから読み出した命令を保持する。
- エ 命令を読み出すために,次の命令が格納されたアドレスを保持する。
解答・解説を見る
正解:エ
AI解説
正解はエ。プログラムレジスタ(プログラムカウンタ、PC)は、次に実行すべき命令が格納されている主記憶上のアドレスを保持するレジスタである。命令を取り出す(フェッチする)たびに自動的に次の命令のアドレスに更新され、分岐命令が実行されると分岐先アドレスに書き換えられる。命令実行サイクルの起点となる重要なレジスタである。 ア: 演算のためにメモリから読み出したデータを保持するのは、汎用レジスタ(アキュムレータなど)の役割である。 イ: 演算結果の状態(ゼロ、符号、桁あふれなど)を保持して条件分岐に使うのは、フラグレジスタ(ステータスレジスタ)の役割である。 ウ: メモリから読み出した命令をデコードのために保持するのは、命令レジスタ(IR)の役割である。 エ: 正しい。次の命令が格納されたアドレスを保持し、命令の読出しに使われるのがプログラムカウンタである。 💡 レジスタは「何を保持するか」で区別する。プログラムカウンタ=次の命令のアドレス、命令レジスタ=命令そのもの、フラグレジスタ=演算結果の状態、汎用レジスタ=データ。『アドレス』か『命令』か『状態』かを読み分ける。
出典:平成29年度 春期 応用情報技術者試験 午前 問8 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。