Instrucción: CPI |
Función: | Comparación entre registro y constante |
Sintaxis: | CPI Rd, K |
Código de Operación de 16 bit |
0011 |
KKKK | dddd | KKKK |
Operación: | Rd - K |
Operandos: | 16 £ k £ 31, 0 £ K £ 255 |
Words: | 1 (2 bytes) |
Ciclos: | 1 |
Flags: | Z, N, V, C, H |
Program Counter: | PC Ü PC + 1 |
Descripción: CPI realiza una comparación entre el registro Rd y una constante. El registro no 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: Estará a set si el resultado es $00, de lo contrario se borrará. |
|
C: Estará a set si el valor absoluto K es mayor que el valor absoluto de Rd, de lo contrario se borrará. |
|
Ejemplo: |
|
CPI r19,3 | ; Comparar r19 con 3 |
BRNE error |
; Desvío si r19 < > 3 |
... |
|
error: NOP | ; Destino de desvío (No hacer nada) |