Datasheet
1998-2013 Microchip Technology Inc. DS30289C-page 211
PIC17C7XX
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 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'
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: [ 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 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 a NOP is executed instead, making
it a two-cycle instruction.
Words: 1
Cycles: 1(2)
Q Cycle Activity:
Q1 Q2 Q3 Q4
Decode Read
register 'f'
Process
Data
Write to
destination
If skip:
Q1 Q2 Q3 Q4
No
operation
No
operation
No
operation
No
operation
Example:
HERE DECFSZ CNT, 1
GOTO HERE
NZERO
ZERO
Before Instruction
PC = Address (HERE)
After Instruction
CNT = CNT - 1
If CNT = 0;
PC = Address (HERE)
If CNT 0;
PC = Address (NZERO)