beautypg.com

Decrement and jump if non-zero – Zilog Z86193 User Manual

Page 183

background image

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: