プログラムカウンタとは?
プログラムカウンタとは、次に実行する命令が置かれている主記憶上のアドレスを保持するレジスタ。命令をフェッチするたびに命令長ぶん自動的に進み、分岐・サブルーチン呼出し・割込みが起きるとその飛び先アドレスに書き換わる。
エンベデッドシステムスペシャリスト試験の過去問では2回出題されています(2021年度〜2024年度)。
ぷろぐらむかうんた
プログラムカウンタの意味
次に実行する命令が置かれている主記憶上のアドレスを保持するレジスタ。命令をフェッチするたびに命令長ぶん自動的に進み、分岐・サブルーチン呼出し・割込みが起きるとその飛び先アドレスに書き換わる。
プログラムカウンタの具体例
割込みが発生すると、現在のプログラムカウンタとステータスレジスタが退避され、ベクタテーブルから読み出した割込みハンドラのアドレスがセットされる。
プログラムカウンタは試験でどう引っ掛けられる?
演算結果を保持するアキュムレータ、直前の演算のフラグを持つステータスレジスタ、フェッチした命令そのものを保持する命令レジスタと役割を取り違えやすい。
プログラムカウンタと関連する用語
プログラムカウンタが出た過去問
命令アドレスレジスタ(プログラムカウンタ)に関する記述として、適切なものはどれか。
正解:条件分岐命令を実行すると、命令アドレスレジスタの内容が書き換えられることがある。
要点:プログラムカウンタは次の命令アドレスを保持し分岐で変わる
命令アドレスレジスタ(プログラムカウンタ)は、次に実行すべき命令が置かれている主記憶上のアドレスを保持するレジスタで、通常は命令の取出しごとに自動的に進む。条件分岐命令では条件が成立した場合に分岐先アドレスがこのレジスタへ設定されるため、内容が書き換えられることがある。逐次実行時と分岐時で更新のされ方が変わる点が要点である。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 am2 問2(IPA)プロセスの切替えに関する記述のうち、ディスパッチャの説明として、適切なものはどれか。
正解:主記憶に保存されている選択したプロセスの情報を、CPUにロードしてプロセスを起動する。
要点:ディスパッチャは選ばれたプロセスにCPUを引き渡す
ディスパッチャは、スケジューラが選んだプロセスの実行環境(プログラムカウンタやレジスタなどのコンテキスト)を主記憶からCPUへ復元し、そのプロセスの実行を開始させる役割を担う。「どれを動かすか」を決めるのがスケジューラ、「実際にCPUを明け渡す」のがディスパッチャという分担になる。
出典:令和6年度 秋期 エンベデッドシステムスペシャリスト試験 am2 問6(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。