(C) Bit Carry/Borrow
El bit C se usa para indicar si hay un 'carry' (acarreo en una suma) o 'borrow' (acarreo como resultado
de una substracción). Desplaza y opera las instrucciones de rotación con y a través del bit de acarreo para
facilitar operaciones de desplazamiento de múltiples palabras. Este bit es también afectado durante el bit de
prueba y instrucciones 'branch'.
La
Figura 27
es un ejemplo para ver la manera de que el bit de código de condición se ve afectado por
las operaciones aritméticas. El bit H no es útil después de esta operación, porque el acumulador no fue un valor
BCD válido antes de la operación.
Asumiendo valores iniciales en el acumulador y los códigos de condición:
Se ejecuta esta instrucción:
- - - - - AB 02
Los códigos de condición y el acumulador reflejan los resultados de la instrucción ADD:
H– Se pone a 1 porque ha habido un acarreo del bit 3 al bit 4 del acumulador
I – No cambia
N– Se pone a 0 porque el resultado no es negativo (el bit 7 del acumulador es 0)
Z– Se pone a 0 porque el resultado no es 0
C– Se pone a 1 porque ha habido un acarreo del bit 7 del acumulador
Figura 27. Cómo los códigos de condición son afectados por las operaciones aritméticas
Contador de Programa
El contador de programa es un registro de 16-bits que contiene la dirección de la siguiente instrucción o
el operando de la instrucción sacada por el procesador. En la mayoría de variantes del MC68HC05, algunos bits
de la parte alta del contador de programa no se usan y siempre están a 0. El MC68HC705J1A utiliza sólo 11 bits
del contador de programa, con los cinco bits de la parte alta siempre a 0. El número de bits útiles en el contador
de programa se apareja exactamente con el número de líneas de dirección implementadas en el microcontrolador.
15
0
0
0
0
0
Normalmente, el contador de programa avanza una posición de memoria en por instrucción, al tiempo
que esta es leída. Las operaciones como salto (jump), bifurcación (branch) e interrupciones provocan la carga del
contador de programa con otra dirección de memoria diferente, que la siguiente posición secuencial.
7
ACUMULADOR
antes
1
1
1
CODIGO DE CONDICION
1
1
1
ADD
7
ACUMULADOR
después
0
0
0
CODIGO DE CONDICION
1
1
1
10
Figura 28. Contador de Programa (PC)
0
1
1
1
1
1 ($FF)
H
I
N
Z
C
0
1
1
0
0
#2
;ADD 2 al Acumulador
0
0
0
0
0
1 ($01)
H
I
N
Z
C
1
1
0
0
1
0
Contador de Programa (PC)
52