Instrucción: BREQ |
Función: | Desvío si son iguales |
Sintaxis: | BREQ k |
Código de Operación de 16 bit |
1111 |
00kk | kkkk | k001 |
Operación: | Si Rd = Rr (Z = 1) 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: BREQ realiza un desvío condicional relativo. Hace un test del flag zero (Z) y se desvía relativamente a PC si Z está a set. 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 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 BRBS 1, k). |
|
Ejemplo: |
|
CP r1,r0 | ; Comparar registros r1 y r0 |
BREQ equal |
; Desvío si los registros son iguales |
... |
|
equal: NOP | ; Destino de desvío (No hacer nada) |