Contenido>Indice>Intro Instrucciones


Instrucción: DJNZ
Función: Decrementa y salta si el operando no es 0
Sintaxis: DJNZ operando,offset

Instrucción Código de Operación Byte 2º Byte 3º Bytes Ciclos Flags
DJNZ Rn,offset
1 1 0 1 1 r r r
offset - 2 2 -
DJNZ direcc,offset

0xD5

direcc offset 3 2 -

Operación: DJNZ operando,offset

(PC)<= (PC) + 2 (ó 3)
operando <=  operando -1
IF operando < > 0
THEN
(PC)<= (PC) + offset

Descripción: DJNZ decrementa el operando y si el nuevo valor es distinto de cero, se produce el salto. Si el valor del operando es cero, el programa continúa con la siguiente instrucción a DJNZ. La dirección a donde saltar se obtiene sumando el offset (último byte de la instrucción), al PC (Program Counter) después de que éste se haya incrementado hasta el comienzo de la siguiente instrucción. El offset representa una cantidad entera con signo, y permite saltos de hasta 127 posiciones hacia adelante, y hasta 128 posiciones hacia atrás, sobre la dirección de comienzo de la siguiente instrucción.

Si el valor inicial del operando es cero, al ser decrementado pasa a valer 0xFF, sin que el bit C se vea afectado por ello. Se puede utilizar para repetir un conjunto de instrucciones desde 1 hasta 256 veces.

Véase también: CJNE   


  Contenido>Indice>Intro Instrucciones