スタックの最上段のアドレスを保持するレジスタで、スタック内で最後に参照されたアドレスを保持しています。
メインルーチンがサブルーチンを呼び出すとき、次のようにサブルーチン終了後の復帰先などをスタックに格納してからサブルーチンを実行しています。
- メインルーチンの次に実行される命令アドレスをスタックに格納
- サブルーチンのアドレスをプログラムカウンタに設定
- サブルーチン用の局所変数領域をスタックの最上段に作成
- サブルーチンを実行
- サブルーチン用の局所変数領域を解放
- スタック(の最上段)に格納された復帰先をプログラムカウンタに設定