프로그램 카운터

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

프로그램 카운터(Program counter, PC)는 프로세서 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 명령어의 주소를 가지고 있기 때문에 명령어 포인터라고도 한다. 프로그램 계수기는 각 명령어 사이클에 따라 자동으로 증가하여, 메모리에 있는 명령어들이 순차적으로 실행될 수 있도록 한다. 단, 분기 또는 서브루틴 호출/복귀 등의 특정 명령어는 순차적 흐름을 중단시키고 프로그램 카운터에 새로운 값이 들어가도록 한다.

대부분의 프로세서에서는 명령어를 반입하고 난 직후에 명령어 포인터를 증가시킨다. 이것은 분기 명령어의 목표가 되는 주소를, 그 분기 명령어의 인수(operand)를 다음 명령어의 주소에 더함으로써 얻을 수 있다는 것을 의미한다. 즉, 다음에 실행될 명령어의 주소는 항상 명령어 포인터 내부에서 찾을 수 있다.

한편, 재설정가능한 컴퓨터 시스템의 기본 모델(비 폰노이만 모델)에서는 프로그램 계수기 대신 데이터 계수기를 사용한다..