
PIC18FXX39
DS30485A-page 222
Preliminary
2002 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鈥檚 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
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鈥檚 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
BNZ
Jump
Before Instruction
PC
=
address (HERE)
After Instruction
If Zero
=
0;
PC
=
address (Jump)
If Zero
=
1;
PC
=
address (HERE+2)