Un contatore di programma è un registro in un processore di computer che contiene l'indirizzo (posizione) dell'istruzione in esecuzione al momento corrente. Quando ogni istruzione viene caricata, il contatore del programma aumenta il valore memorizzato di 1. Dopo che ogni istruzione è stata caricata, il contatore del programma punta all'istruzione successiva nella sequenza. Quando il computer si riavvia o viene ripristinato, il contatore del programma normalmente torna a 0.
In informatica, un programma è un insieme specifico di operazioni ordinate che un computer deve eseguire. Un'istruzione è un ordine dato a un processore di computer da un programma. All'interno di un computer, un indirizzo è una posizione specifica nella memoria o nell'archivio. Un registro è uno di un piccolo insieme di luoghi di conservazione dei dati utilizzati dal processore.
Alcuni ingegneri si riferiscono a un contatore di programma come un registro dell'indirizzo dell'istruzione o un puntatore dell'indirizzo.