PIC16C925/926
DECF
Syntax:
Operands:
Operation:
Status Affected:
Encoding:
Description:
Words:
Cycles:
Q Cycle Activity:
Decrement f
[ label ] DECF f [,d]
0 ≤ f ≤ 127
d ∈ [0,1]
(f) - 1 → (destination)
Z
00 0011 dfff ffff
Decrement register ’f’. If ’d’ is 0, the
result is stored in the W register. If ’d’
is 1, the result is stored back in
register ’f’.
1
1
Q1 Q2 Q3
Q4
Decode
Read
register
’f’
Process
data
Write to
destination
Example
DECF CNT, 1
Before Instruction:
CNT = 0x01
Z
=0
After Instruction:
CNT = 0x00
Z
=1
DECFSZ
Decrement f, Skip if 0
Syntax:
Operands:
Operation:
Status Affected:
[ label ] DECFSZ f [,d]
0 ≤ f ≤ 127
d ∈ [0,1]
(f) - 1 → (destination);
skip if result = 0
None
Encoding:
00
1011 dfff ffff
Description:
The contents of register ’f’ are decre-
mented. 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 1, the next instruction is
executed. If the result is 0, then a NOP
is executed instead, making it a 2TCY
instruction.
Words:
1
Cycles:
1(2)
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
register ’f’
Process
data
Write to
destination
If Skip: (2nd Cycle)
Q1
Q2
Q3
Q4
No
No
No
No
Operation Operation Operation Operation
Example
HERE
DECFSZ
GOTO
CONTINUE •
•
•
CNT, 1
LOOP
Before Instruction:
PC = address HERE
After Instruction:
CNT = CNT - 1
if CNT = 0,
PC
= address CONTINUE
if CNT ≠ 0,
PC
= address HERE+1
2001 Microchip Technology Inc.
Preliminary
DS39544A-page 121