Datasheet
© 2007 Microchip Technology Inc. DS41213D-page 47
PIC16F5X
GOTO Unconditional Branch
Syntax: [ label ] GOTO k
Operands: 0 ≤ k ≤ 511
Operation: k → PC<8:0>;
STATUS<6:5> → PC<10:9>
Status Affected: None
Encoding: 101k kkkk kkkk
Description: GOTO is 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>. GOTO is a two-
cycle instruction.
Words: 1
Cycles: 2
Example
: GOTO THERE
After Instruction
PC = address (THERE)
INCF Increment f
Syntax: [ label ] INCF f, d
Operands: 0 ≤ f ≤ 31
d ∈ [0,1]
Operation: (f) + 1 → (dest)
Status Affected: Z
Encoding: 0010 10df ffff
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’.
Words: 1
Cycles: 1
Example
: INCF CNT, 1
Before Instruction
CNT = 0xFF
Z=0
After Instruction
CNT = 0x00
Z=1
INCFSZ Increment f, Skip if 0
Syntax: [ label ] INCFSZ f, d
Operands: 0 ≤ f ≤ 31
d ∈ [0,1]
Operation: (f) + 1 → (dest), skip if result = 0
Status Affected: None
Encoding: 0011 11df ffff
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 NOP is executed instead making
it a two-cycle instruction.
Words: 1
Cycles: 1(2)
Example
: HERE INCFSZ CNT, 1
GOTO LOOP
CONTINUE •
•
•
Before Instruction
PC = address (HERE)
After Instruction
CNT = CNT + 1;
if CNT = 0,
PC = address (CONTINUE);
if CNT ≠ 0,
PC = address (HERE +1)