Program counter とは

Intel x86およびItaniumマイクロプロセッサで一般に命令ポインタ(IP)と呼ばれるプログラムカウンタ(PC)は、命令アドレスレジスタ(IAR)、命令カウンタ、または命令シーケンサの一部と呼ばれることもあります。コンピュータがプログラムシーケンスのどこにあるかを示します。
ほとんどのプロセッサでは、PCは命令をフェッチした後にインクリメントされ、実行される次の命令のメモリアドレスを保持する(「指す」)。 (インクリメントがフェッチに先行するプロセッサでは、PCは現在実行中の命令を指し示します)。
プロセッサは通常、メモリから順次命令をフェッチしますが、制御転送命令は、PCに新しい値を設定することによってシーケンスを変更します。これには、分岐(ジャンプとも呼ばれる)、サブルーチン呼び出し、およびリターンが含まれます。いくつかのアサーションの真実を条件とする転送によって、コンピュータは異なる条件下で異なるシーケンスに従うことができる。
分岐は、次の命令がメモリ内の他の場所からフェッチされることを提供する。サブルーチンコールは分岐するだけでなく、PCの前の内容をどこかに保存します。戻り値は、PCの保存された内容を取得してPCに戻し、サブルーチンコールに続く命令で順次実行を再開します。