A program counter is a register in the processor that contains the address, or location of the instruction being executed at that particular point in time. As each instruction of the process is fetched, the value of the program counter in incremented by 1, pointing to each instruction to be executed next and reverts back to zero on restart of the system.