A
register in the
central processing unit that contains the
address of the next
instruction to be executed. The program counter is automatically incremented after each
instruction is fetched to point to the following
instruction. It is not normally manipulated like an ordinary
register but instead, special instructions are provided to alter the flow of control by writing a new value to the program counter, such as
JUMP,
CALL, and
RTS.