コンピュータ

プログラムカウンタとは

2021年10月11日

プログラムカウンタ

プログラムカウンタ(英:program counter)とは、レジスタの一種で次に実行すべき命令が入っているアドレス(メモリ上の番地)を記憶しておくものです。

レジスタとは

レジスタ(英:register)とは、CPU内部にある記憶装置のことです。

CPUは次のような手順で命令を順番に処理しています。命令を取り出して解読、解読結果から対象データを読み出して実行という流れです。

CPUの命令実行手順

命令の実行手順

  • 命令の取り出し(命令フェッチ)
  • 命令の解読(デコード)
  • 対象データの読み出し(オペランドの読み出し)
  • 命令の実行
  • 結果の書き込み

このとき「取り出した命令の情報」や「次はどの命令を取り出せばよいかの情報」を覚えておく必要があります。この役割を果たすのがCPU内部にあるレジスタです。

プログラムカウンタとは

プログラムカウンタは、次に実行すべき命令が入っているアドレス(メモリ上の番地)を記憶しておくためのレジスタです。

CPUが命令を実行する際、プログラムカウンタと呼ばれるレジスタの内容を参照し、メモリ上から命令を取り出します。

プログラムカウンタ

そして、プログラムカウンタを参照してメモリから取り出した命令は、命令レジスタと呼ばれるレジスタに記憶します。

命令レジスタ

命令を取り出した後は、次の命令に備えてプログラムカウンタの値を加算します。(今回の命令が1002、次の命令が1003の場合は、プログラムカウンタに+1して1003とする)

helpful