El contador de programa
El contador de programa (program counter o PC) es simplemente un registro. A continuación se describirá este elemento tan simple, pero tan importante para un microprocesador.
Hablar del PC, requiere inevitablemente hablar del programa. Un programa [almacenado] es un conjunto de instrucciones ordenadas, cuya función es ejecutar una tarea o algoritmo en el microprocesador.
Podemos pensar en ese conjunto de instrucciones como una lista, donde para que el programa tenga sentido, cada instrucción debe estar ubicada en una posición determinada de esa lista. A esa posición se le llama dirección de la instrucción y es única para cada una de ellas.
Las instrucciones del programa se almacenan en una memoria. Dicha memoria se conoce como Memoria de Instrucciones o MI. La MI tiene un bus de direcciones y un bus de datos de salida. Puesto que está memoria solo se lee, no necesita que el bus de datos sea bidireccional o que tenga un bus de datos de entrada.
En un determinado punto de la ejecución del programa, el microprocesador se encontrará ejecutando una instrucción específica. Dicha instrucción es leída de la MI. Puesto que la MI es una memoria, necesita tener en su entrada una dirección que le especifique qué dato [instrucción] colocar en su salida. Esa dirección es el valor actual del PC.
Como se mencionó anteriormente, el PC es un registro. La función de ese registro es almacenar el valor de la dirección de la instrucción que va a ser ejecutada por el microprocesador.
De esta forma, el PC tiene una entrada y una salida. La salida representa el valor de la dirección de la instrucción actual, mientras que la entrada tiene el valor de la dirección de la siguiente instrucción.