
PIC18F85J11 FAMILY
DS39774D-page 314
2010 Microchip Technology Inc.
BZ
Branch if Zero
Syntax:
BZ n
Operands:
-128
n 127
Operation:
if Zero bit is ‘1’,
(PC) + 2 + 2n
PC
Status Affected:
None
Encoding:
1110
0000
nnnn
Description:
If the Zero bit is ‘1’, then the program
will branch.
The 2’s complement number, ‘2n’, is
added to the PC. Since the PC will have
incremented to fetch the next
instruction, the new address will be
PC + 2 + 2n. This instruction is then a
two-cycle instruction.
Words:
1
Cycles:
1(2)
Q Cycle Activity:
If Jump:
Q1
Q2
Q3
Q4
Decode
Read literal
‘n’
Process
Data
Write to
PC
No
operation
No
operation
No
operation
No
operation
If No Jump:
Q1
Q2
Q3
Q4
Decode
Read literal
‘n’
Process
Data
No
operation
Example:
HERE
BZ
Jump
Before Instruction
PC
=
address (HERE)
After Instruction
If Zero
=
1
;
PC
=
address (Jump)
If Zero
=
0
;
PC
=
address (HERE + 2)
CALL
Subroutine Call
Syntax:
CALL k {,s}
Operands:
0
k 1048575
s
[0, 1]
Operation:
(PC) + 4
TOS,
k
PC<20:1>;
if s = 1,
(W)
WS,
(STATUS)
STATUSS,
(BSR)
BSRS
Status Affected:
None
Encoding:
1st word (k<7:0>)
2nd word(k<19:8>)
1110
1111
110s
k19kkk
k7kkk
kkkk
kkkk0
kkkk8
Description:
Subroutine call of entire 2-Mbyte
memory range. First, return address
(PC+ 4) is pushed onto the return stack.
If ‘s’ = 1, the W, STATUS and BSR
registers are also pushed into their
respective shadow registers, WS,
STATUSS and BSRS. If ‘s’ = 0, no
update occurs. Then, the 20-bit value,
‘k’, is loaded into PC<20:1>. CALL is a
two-cycle
instruction.
Words:
2
Cycles:
2
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read literal
‘k’<7:0>,
Push PC to
stack
Read literal
’k’<19:8>,
Write to PC
No
operation
No
operation
No
operation
No
operation
Example:
HERE
CALL
THERE,1
Before Instruction
PC
=
address (HERE)
After Instruction
PC
=
address (THERE)
TOS
=
address (HERE + 4)
WS
=
W
BSRS
=
BSR
STATUSS =
STATUS
PIC18 J Series MCU Overview
8-bit PIC® Microcontroller Portfolio
AC162079-ND - HEADER MPLAB ICD2 18F85J90 64/80
AC164327-ND - MODULE SKT FOR 64TQFP