戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2012年 春期 61


問題文

CPUにおけるプログラムカウンタの説明はどれか。

選択肢

次に実行する命令が入っている主記憶のアドレスを保持する。(正解)
プログラムの実行に必要な主記憶領域の大きさを保持する。
プログラムを構成する命令数を保持する。
命令実行に必要なデータが入っている主記憶のアドレスを保持する。

🔒 解説は解答すると表示されます

CPUにおけるプログラムカウンタの説明はどれか。【ITパスポート 解説】

正解の理由

「次に実行する命令が入っている主記憶のアドレスを保持する。」が正解です。
プログラムカウンタ(PC)はプログラムの「次に実行すべき命令」がどこにあるかを指し示すレジスタです。CPU(CPU(Central Processing Unit:中央処理装置))が命令を実行する際、まずその命令が置かれている主記憶(主記憶=メモリ)から命令を取り出す必要があります。PCはその取り出し先(=主記憶のアドレス)を保持しておき、命令を順に取り出せるようにします。したがって「アドレスを保持する」という記述が正しく、内容そのもの(命令のデータ)やプログラムのサイズではありません。

解法ステップ

  1. 「プログラムカウンタ(PC)」の役割を思い出す。ポイントは「どんな情報を持つか:アドレスか、サイズか、命令数か、データのアドレスか」。
  2. 各選択肢のキーワードで照合する。PCは「次に実行する命令のアドレス」を持つため、「アドレスを保持する」が合致する。
  3. 他の選択肢が示すもの(主記憶領域の大きさ、命令数、データのアドレス)はPCの役割ではないので消去する。
  4. 比較のために関連するレジスタも確認する(例:命令レジスタ(IR:Instruction Register)は実際の命令を保持、主記憶アドレスレジスタ(MAR:Memory Address Register)はメモリアクセス時のアドレス保持など)。

選択肢別の誤答解説

  • :正しい。PCは「次に実行する命令がある主記憶のアドレス」を保持する。命令の取り出し(フェッチ)時に使われ、通常は命令長に合わせて自動で増加(インクリメント)するか、分岐命令で別の値に設定されます。
  • イ:誤り。プログラムの実行に必要な主記憶領域の大きさ(プログラムサイズ)はファイルのメタ情報やリンカ・ローダが管理する情報で、PCが保持するものではありません。
  • ウ:誤り。プログラムを構成する命令数(命令の総数)もPCの役割ではありません。命令数はプログラムの性質やコンパイル結果で決まる情報です。
  • エ:誤り。命令実行に必要なデータが入っている主記憶のアドレスは、データアクセス時に使うアドレスレジスタ(主記憶アドレスレジスタ:MAR)やインデックスレジスタ、ベースレジスタなどが扱います。PCは命令のアドレスを扱う点が異なります。

よくある誤解

  1. 「PCは現在実行中の命令を保持する」
    → 実際には現在実行中の命令自体は命令レジスタ(IR)に入ります。PCは次に取ってくる命令の住所を指します。例えると、PCは「しおり(次に読むページ)」、IRは「開いているページの内容」です。
  2. 「PCはプログラムの大きさや命令数を表す」
    → PCは位置(どこを読むか)を示すもので、サイズや総数とは無関係です。
  3. 「PCはデータのアドレスも持つ」
    → データ用のアドレスは別のレジスタやアドレス生成回路が扱います。PCは命令のアドレス専用と考えるとわかりやすいです。

補足コラム

  • 名前の由来:Program Counter(プログラムカウンタ)という名前は「次に実行する命令の番地を数える(カウントする)」という意味から来ています。別名で「Instruction Pointer(IP:命令ポインタ)」と呼ばれることもあります(特にx86系)。
  • 動作の流れ:通常はPCに入っている値を使って主記憶から命令を読み出し、その後PCは次の命令位置に進むよう自動で増加(+1、あるいは命令長分)します。ジャンプや分岐命令ではPCに別の値をセットして実行の流れを変えます。
  • モダンCPUでは:パイプライン処理や分岐予測があり、PCは単純に「次の番号」ではなく「フェッチすべきアドレス群」を管理する役割を持つ場合がありますが、基本概念は同じです。

FAQ

Q1. PCは人が直接読めますか?
A1. 命令セットやデバッガを使えば、PCの値(アドレス)を見ることはできます。プログラム的に参照できる命令セットもありますが、CPUやOSの設計で扱いが異なります。
Q2. 割り込み(interrupt)が起きたときPCはどうなる?
A2. 通常は現在のPCの値(戻り先)をスタックや特別なレジスタに保存してから、割り込み処理用のアドレスにPCを設定します。処理終了後に保存した値を戻して元の実行に復帰します。
Q3. 「命令レジスタ(IR)」と「PC」はどう違う?
A3. IRは「取り出した命令そのもの(内容)」を保持します。PCは「次に取り出す命令の場所(アドレス)」を保持します。役割が異なるため混同しないようにしましょう。
Q4. 「PC」と「スタックポインタ(SP)」は同じものですか?
A4. 違います。SPは関数呼び出しやローカル変数のためのスタック領域の位置(頂点)を指すレジスタです。PCは命令の場所を指します。

関連キーワード: CPU、プログラムカウンタ、PC、主記憶、命令レジスタ、MAR、アドレス、レジスタ、制御ユニット、命令フェッチ、分岐、スタックポインタ、割り込み、インストラクションポインタ
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について