
2003 Microchip Technology Inc.
Preliminary
DS40300C-page 113
PIC16F62X
DECFSZ
Decrement f, Skip if 0
Syntax:
[ label ] DECFSZ f,d
Operands:
0
≤ f ≤ 127
d
∈ [0,1]
Operation:
(f) - 1
→ (dest);
skip if result =
0
Status Affected:
None
Encoding:
00
1011
dfff
ffff
Description:
The contents of register 'f' are
decremented. 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, the next
instruction, which is already
fetched, is discarded. A NOP is
executed instead making it a
two-cycle instruction.
Words:
1
Cycles:
1(2)
Example
HERE
DECFSZ
REG1, 1
GOTO
LOOP
CONTINUE
Before Instruction
PC
= address HERE
After Instruction
REG1
= REG1 - 1
if REG1 = 0,
PC
= address CONTINUE
if REG1
≠ 0,
PC
= address HERE+1
GOTO
Unconditional Branch
Syntax:
[ label ]
GOTO k
Operands:
0
≤ k ≤ 2047
Operation:
k
→ PC<10:0>
PCLATH<4:3>
→ PC<12:11>
Status Affected:
None
Encoding:
10
1kkk
kkkk
Description:
GOTO
is an unconditional
branch. The eleven bit
immediate value is loaded into
PC bits <10:0>. The upper bits
of PC are loaded from
PCLATH<4:3>. GOTO is a two-
cycle instruction.
Words:
1
Cycles:
2
Example
GOTO THERE
After Instruction
PC = Address THERE