![](http://datasheet.mmic.net.cn/Microchip-Technology/PIC17C44-33-L_datasheet_99509/PIC17C44-33-L_121.png)
1996 Microchip Technology Inc.
DS30412C-page 121
PIC17C4X
DECF
Decrement f
Syntax:
[
label ] DECF f,d
Operands:
0
≤ f ≤ 255
d
∈ [0,1]
Operation:
(f) – 1
→ (dest)
Status Affected:
OV, C, DC, Z
Encoding:
0000
011d
ffff
Description:
Decrement register 'f'. If 'd' is 0 the
result is stored in WREG. If 'd' is 1 the
result is stored back in register 'f'.
Words:
1
Cycles:
1
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
register 'f'
Execute
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:
[
label ] DECFSZ f,d
Operands:
0
≤ f ≤ 255
d
∈ [0,1]
Operation:
(f) – 1
→ (dest);
skip if result = 0
Status Affected:
None
Encoding:
0001
011d
ffff
Description:
The contents of register 'f' are decre-
mented. If 'd' is 0 the result is placed in
WREG. 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,
and an NOP is executed instead mak-
ing it a two-cycle instruction.
Words:
1
Cycles:
1(2)
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
register 'f'
Execute
Write to
destination
Example:
HERE
DECFSZ
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)