Programtelleren eller instruksjonspekeren er et spesielt prosessorregister som brukes for å angi hvor langt prosessoren har kommet i utføringen av en instruksjonssekvens. Den angir enten adressen til instruksjonen som utføres eller adressen til neste instruksjon som skal utføres.

For hver instruksjon som utføres, så avanserer vanligvis programtelleren én instruksjon fremover i minnet. Unntak fra denne regelen er ved prosedyrekall, hopp og forgrening av instruksjonsflyt. I disse tilfellene blir en ny minneadresse lastet inn i programtelleren, noe som får prosessoren til å begynne å hente instruksjoner fra en annen del av minnet.