Program Counter (PC)

The Program Counter is a 16-bit register that holds the address for the next instruction.
Every time an opcode or operand is fetched, the program counter is incremented in order to reference the next opcode or operand in memory.

It is also possible to load the program counter with values from the bus, which allows jumps (direct or conditional) to other memory locations.

Program-Counter schematic