Instrucción: CPC |
Función: | Comparación con carry |
Sintaxis: | CPC Rd, Rr |
Código de Operación de 16 bit |
0000 |
01rd | dddd | rrrr |
Operación: | Rd - Rr - 1 |
Operandos: | 0 £ k £ 31, 0 £ r £ 31 |
Words: | 1 (2 bytes) |
Ciclos: | 1 |
Flags: | Z, N, V, C, H |
Program Counter: | PC Ü PC + 1 |
Descripción: CPC realiza una comparación entre dos registros Rd y Rr y también tiene en cuenta el carry previo. Ninguno de los registros es cambiado. Todos los desvíos condicionales pueden usarse después de esta instrucción. |
|
H: Estará a set (uno) si había una llevada negativa (borrow) del bit 3, de lo contrario se borrará (cero). |
|
V: Estará a set si ocurre un desbordamiento del complemento a dos como resultado de la operación, de lo contrario se borrará. |
|
N: Estará a set si el bit MSB del resultado está a set, de lo contrario se borrará. |
|
Z: El valor previo permanece sin cambio cuando el resultado es cero, de lo contrario se borrará. |
|
C: Estará a set si el valor absoluto del contenido de Rr + el carry previo, es mayor que el contenido de Rd, de lo contrario se borrará. |
|
Ejemplo: |
|
Comparar r3:r2 con r1:r0 | |
CP r2,r0 |
; Compara el byte bajo |
CPC r3,r1 |
; Compara el byte alto |
BRNE noteq |
; Desvío si no son iguales |
... |
|
noteq: NOP | ; Destino de desvío (No hacer nada) |