PIC16F5X
GOTO
Unconditional Branch
INCFSZ
Increment f, Skip if 0
Syntax:
[ label ] GOTO k
0 ≤ k ≤ 511
Syntax:
[ label ] INCFSZ f, d
Operands:
Operation:
Operands:
0 ≤ f ≤ 31
d ∈ [0,1]
k → PC<8:0>;
STATUS<6:5> → PC<10:9>
Operation:
(f) + 1 → (dest), skip if result = 0
Status Affected: None
Status Affected: None
Encoding:
101k
kkkk
kkkk
Encoding:
0011
11df
ffff
Description:
GOTOis an unconditional branch.
The 9-bit immediate value is
loaded into PC bits <8:0>. The
upper bits of PC are loaded from
STATUS<6:5>. GOTOis a two-
cycle instruction.
Description:
The contents of register ‘f’ are
incremented. If ‘d’ is ‘0’, the result
is placed in the W register. If ‘d’ is
‘1’, the result is placed back in
register ‘f’. If the result is ‘0’, then
the next instruction, which is
already fetched, is discarded and
a NOPis executed instead making
it a two-cycle instruction.
Words:
1
Cycles:
Example:
2
GOTO THERE
Words:
1
After Instruction
PC
Cycles:
Example:
1(2)
=
address (THERE)
HERE
INCFSZ
GOTO
CNT, 1
LOOP
CONTINUE •
INCF
Increment f
•
•
Syntax:
[ label ] INCF f, d
Before Instruction
Operands:
0 ≤ f ≤ 31
d ∈ [0,1]
PC
After Instruction
CNT
=
address (HERE)
Operation:
(f) + 1 → (dest)
=
=
=
≠
=
CNT + 1;
0,
address (CONTINUE);
0,
Status Affected:
Encoding:
Z
if CNT
PC
0010
10df
ffff
if CNT
PC
Description:
The contents of register ‘f’ are
incremented. If ‘d’ is ‘0’, the result
is placed in the W register. If ‘d’ is
‘1’, the result is placed back in
register ‘f’.
address (HERE +1)
Words:
1
1
Cycles:
Example:
INCF
CNT,
1
Before Instruction
CNT
Z
=
=
0xFF
0
After Instruction
CNT
Z
=
=
0x00
1
© 2007 Microchip Technology Inc.
DS41213D-page 47