Instrucción: BRNE |
![]() |
Función: | Desvío si no son iguales |
Sintaxis: | BRNE k |
Código de Operación de 16 bit |
1111 |
01kk | kkkk | k001 |
Operación: | Si Rd ¹ Rr (Z = 0) entonces PC Ü PC + k + 1, sino |
PC Ü PC + 1 | |
Operandos: | -64 £ k £ +63 |
Words: | 1 (2 bytes) |
Ciclos: | 1 si la condición es falsa |
2 si la condición es verdadera | |
Flags: | Ninguno |
Program Counter: | PC Ü PC + k + 1 |
PC Ü PC + 1, si la condición es falsa |
Descripción: BRNE realiza un desvío condicional relativo. Hace un test del flag zero (Z) y se desvía relativamente a PC si Z está borrado. Si la instrucción se ejecuta inmediatamente después de alguna de las instrucciones CP, CPI, SUB o SUBI, el desvío puede ocurrir si y sólo si el número binario con o sin signo representado en Rd no es igual al número binario con o sin signo representado en Rr. Esta instrucción desvía relativamente a PC (Program Counter) en cualquier dirección (PC - 63 £ destino £ PC + 64). El parámetro k es el offset de PC y es representado en forma de complemento a dos. (Equivalente a la instrucción BRBC 1, k). |
|
Ejemplo: |
|
EOR r27,r27 |
; Borrar r27 |
loop: INC r27 |
; Incrementar r27 |
... |
|
CPI r27,5 |
; Comparar r27 con 5 |
BRNE loop |
; Desvío si r27 < > 5 |
NOP | ; Salida de Loop (No hacer nada) |