BANZ
Branch on Auxiliary Register Not Zero
7-42
Example 1
BANZ
PGM0
;(PGM0 labels program address 0)
Before Instruction
After Instruction
ARP
0
ARP
0
AR0
5h
AR0
4h
Because the content of AR0 is not zero, the program branches to program ad-
dress 0 is loaded into the program counter (PC), and the program continues
executing from that location. The default auxiliary register operation is a decre-
ment of the current auxiliary register content; thus, AR0 contains 4h at the end
of the execution.
or
Before Instruction
After Instruction
ARP
0
ARP
0
AR0
0h
AR0
FFFFh
Because the content of AR0 is zero, the branch is not executed; instead, the
PC is incremented by 2, and execution continues with the instruction following
the BANZ instruction. Because of the default decrement, AR0 is decremented
by 1, becoming –1.
Example 2
MAR *,AR0
;Set ARP to point to AR0.
LAR AR1,#3
;Load AR1 with 3.
LAR AR0,#60h
;Load AR0 with 60h.
PGM191
ADD *+,AR1
;Loop: While AR1 not zero,
BANZ PGM191,AR0 ;add data referenced by AR0
;to accumulator and increment
;AR0 value.
The contents of data-memory locations 60h–63h are added to the accumula-
tor.