Registros Especiales • Registro de trabajo: W (Working Register) Es uno de los registros más importantes. La mayoría de las instrucciones utilizan este registro como operando. El registro W no tiene asociada ninguna posición dentro de la memoria de datos por lo que su contenido no se puede leer ni modificar con las instrucciones de lectura/escritura en memoria. ∀• Registro de estado: STATUS Contiene tres bits que indican el estado de la unidad aritmético lógica (ALU), dos bits que indican el estado de RESET del procesador y tres bits para selección del banco de memoria.
∀• Registro de opciones: OPTION Es un registro de lectura/escritura que contiene seis bits para controlar el temporizador TMR0 y el temporizador de vigilancia (Watchdog Timer WDT), un bit para configurar las interrupciones producidas por flancos en el pin RB0/INT y un bit para habilitar resistencias “pull-up” en el puerto B
∀• Registro de control de interrupciones: INTCON INTCON es un registro de lectura/escritura que se emplea para habilitar o deshabilitar las distintas interrupciones así como para identificar la fuente que ha producido la interrupción.
∀• Registros de control del contador de programa: PCL y PCLATH El contador de programa tiene una longitud de 13 bits. El byte bajo (bits 0 a 7) se corresponde con el registro de lectura/escritura PCL. La parte superior del contador de programa no es accesible de forma directa, es necesario emplear el registro intermedio PCLATH.
Escribir en el registro PCLATH no tiene efecto inmediato sobre el contador de programa. El valor de PCLATH sólo se transfiere a los bits superiores del contador de programa al modificar el registro PCL. Las instrucciones de salto GOTO y CALL reservan 11 bits dentro del código de instrucción para codificar la dirección de salto. Estos 11 bits son suficientes para llegar a cualquier posición dentro de la memoria de programa en los PIC16f84.