Z8
®
CPU
User Manual
UM001604-0108
Instruction Description
176
Decrement and Jump if Non-Zero
Syntax
DJNZ r, dst
Instruction Format
Operation
r
←
r–1;
If r <> 0, PC
←
PC + dst
The specified Working Register being used as a counter is decremented. If the contents of
the specified Working Register are not zero after decrementing, then the relative address is
added to the Program Counter (PC) and control passes to the statement whose address is
now in the PC. The range of the relative address is +127 to –128. The original value of the
PC is the address of the instruction byte following the
DJNZ
statement. When the specified
Working Register counter reaches zero, control falls through to the statement following
the
DJNZ
instruction.
The Working Register being used as a counter must be one of the Registers from
04h
to
EFh
. Use of one of the I/O ports, control or peripheral registers will have undefined results.
Example
DJNZ
is typically used to control a
loop
of instructions. In this example, 12 bytes are
moved from one buffer area in the register file to another, follow the steps below:
•
Load 12 into the counter (Working Register R6)
•
Set up the loop to perform the moves
Cycles
OPC (Hex)
Address Mode
dst
r
OPC
dst
12 If jump taken
rA
r
10 if jump not taken (R = 0 to F)
r
Flag
Description
C
Unaffected
Z
Unaffected
S
Unaffected
V
Unaffected
D
Unaffected
H
Unaffected
Note: