Datasheet
© 2009 Microchip Technology Inc. DS40044G-page 123
PIC16F627A/628A/648A
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 kkkk
Description: GOTO is an unconditional
branch. The eleven-bit immedi-
ate 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