PIC18FXX8
DS41159E-page 292
2006 Microchip Technology Inc.
BNOV
Branch if Not Overflow
Syntax:
[
label ] BNOV
n
Operands:
-128
≤ n ≤ 127
Operation:
if Overflow bit is ‘0’
(PC) + 2 + 2n
→ PC
Status Affected:
None
Encoding:
1110
0101
nnnn
Description:
If the Overflow bit is ‘0’, 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 instruc-
tion, 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
BNOV
Jump
Before Instruction
PC
=
address (HERE)
After Instruction
If Overflow
=
0;
PC
=
address (Jump)
If Overflow
=
1;
PC
=
address (HERE + 2)
BNZ
Branch if Not Zero
Syntax:
[
label ] BNZ
n
Operands:
-128
≤ n ≤ 127
Operation:
if Zero bit is ‘0’
(PC) + 2 + 2n
→ PC
Status Affected:
None
Encoding:
1110
0001
nnnn
Description:
If the Zero bit is ‘0’, 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 instruc-
tion, 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
BNZ
Jump
Before Instruction
PC
=
address (HERE)
After Instruction
If Zero
=
0;
PC
=
address (Jump)
If Zero
=
1;
PC
=
address (HERE + 2)