PIC16F5X
COMF
Complement f
DECFSZ
Decrement f, Skip if 0
Syntax:
[ label ] COMF f, d
Syntax:
[ label ] DECFSZ f, d
Operands:
0 ≤ f ≤ 31
d ∈ [0,1]
Operands:
0 ≤ f ≤ 31
d ∈ [0,1]
Operation:
(f) → (dest)
Operation:
(f) – 1 → d; skip if result = 0
Status Affected:
Encoding:
Z
Status Affected: None
0010
01df
ffff
Encoding:
0010
11df
ffff
Description:
The contents of register ‘f’ are
complemented. If ‘d’ is ‘0’, the
result is stored in the W register. If
‘d’ is ‘1’, the result is stored back in
register ‘f’.
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 and a NOPis
executed instead making it a
two-cycle instruction.
Words:
1
1
Cycles:
Example:
COMF
REG1,0
0x13
Words:
1
Before Instruction
REG1
After Instruction
=
Cycles:
Example:
1(2)
HERE
DECFSZ
GOTO
CNT, 1
LOOP
REG1
W
=
=
0x13
0xEC
CONTINUE •
•
•
DECF
Decrement f
Before Instruction
Syntax:
[ label ] DECF f, d
PC
After Instruction
CNT
=
address(HERE)
Operands:
0 ≤ f ≤ 31
d ∈ [0,1]
=
=
=
≠
=
CNT - 1;
0,
address (CONTINUE);
0,
if CNT
PC
if CNT
PC
Operation:
(f) – 1 → (dest)
Status Affected:
Encoding:
Z
address (HERE+1)
0000
11df
ffff
Description:
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’.
Words:
1
1
Cycles:
Example:
DECF
CNT, 1
0x01
Before Instruction
CNT
Z
=
=
0
After Instruction
CNT
Z
=
=
0x00
1
DS41213D-page 46
© 2007 Microchip Technology Inc.