「応用情報技術者試験/令和元年秋期午前問9」プログラムカウンタ

問題

出典:応用情報技術者令和元年秋期午前問9

CPUのプログラムレジスタ(プログラムカウンタ)の役割はどれか

ア:演算を行うために、メモリから読み出したデータを保持する。
イ:条件付き分岐命令を実行するために、演算結果の状態を保持する。
ウ:命令のデコードを行うために、メモリから読み出した命令を保持する。
エ:命令を読み出すために、次の命令が格納されたアドレスを保持する。

解説

プログラムレジスタ(プログラムカウンタ)とは、命令を読み出すために、次の命令が格納されたアドレスを保持する。

ちなみに「命令のデコードを行うために、メモリから読み出した命令を保持する。」ものは命令レジスタである。
どちらも命令を行うためのものなのに、片方は命令レジスタで、もう片方はプログラムレジスタなんて名前を付けられると非常にややこしい。

言ってしまえば、プログラムとは命令の塊、命令の連続なのだから、この名称は中々如何なものか。

まぁ、それを思った人達がきっと別名としてプログラムカウントという名称を付けたのだろう。

プログラムは命令の連続であり、次の命令を格納しておくもの、つまり、プログラムの実行をカウントするものが必要である。それをプログラムカウンタと呼ぶ。ということなのだろう。

だからプログラムレジスタじゃなくて、プログラムカウンタで覚えた方がいいと思う。
この「プログラムの何番目まで実行しているから、次の命令のアドレスはここ!」みたいな感覚の情報を保持していると考えようと、とりあえず私は思う。

解答

正解:エ

アドセンス
改行

テックキャンプ