アドレスレジスタの一種で、実行する命令のアドレスを指し示すレジスタ。命令の読み込みを行なう際にはその内容がアドレスバス上に出力され、また命令を読み込む度に読み取った命令の分だけ値が増加するようになっている。分岐命令は、このプログラムカウンタに値を代入することで実現される。また、スタックポインタと組み合わせ、プログラムカウンタの内容をスタックに一時保存した後に新たな値を代入すると、サブルーチンの呼出しを実現する事になる。反対に、スタックから値を取り出してプログラムカウンタに代入すると、サブルーチンから呼出し元に制御を復帰させる事になる。
ゼロレジスタ.
何を書き込んでもその結果は保存されず、読み出すと常に全ビットがゼロである、というレジスタを持つプロセッサがある。一見意味がないようであるが、RISCアーキテクチャの様に命令セットを単純化した際に、演算命令とゼロレジスタを組み合わせて実質的に別の命令を実現できる。
この様に、ゼロレジスタと演算命令を組み合わせることで、実質的に別の命令と同等の処理を行わせることができる。
汎用レジスタ（ジェネラルレジスタ）.
特殊なレジスタ.
ページレジスタ、セグメントレジスタ.
ページング方式やセグメント方式による、ページセレクタやセグメントセレクタとして使うレジスタ。
ステータスレジスタ.
割込み禁止状態（を設定できる）など「コントロールレジスタ」と言う方が的確な内容を含んでいる場合もある。
特殊なアーキテクチャ.
レジスタセット.
レジスタの値は、プロセッサの内部状態そのものである。つまり、レジスタの値をそっくりそのままどこかに退避させ、後にそれをそっくり元に戻せば、プロセッサの動作を一時中断し、他の作業をさせ、中断前の状態に戻すことができる。
割り込み処理による高速応答性を要求されるアプリケーションを作る場合や、時分割などによる擬似的なマルチタスクを実現する時には、この動作はきわめて頻繁に行なわれる。この、プロセッサの動作状態をそっくり保存して他の動作状態に入れ替えるという動作は、コンテキストスイッチと呼ばれる。