
PIC16F8X
1998 Microchip Technology Inc.
DS30430C-page 61
COMF
Complement f
Syntax:
[
label ] COMF
f,d
Operands:
0
≤ f ≤ 127
d
∈ [0,1]
Operation:
(f)
→ (destination)
Status Affected:
Z
Encoding:
00
1001
dfff
ffff
Description:
The contents of register ’f’ are comple-
mented. If ’d’ is 0 the result is stored in
W. 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
COMF
REG1,0
Before Instruction
REG1
=
0x13
After Instruction
REG1
=
0x13
W=
0xEC
DECF
Decrement f
Syntax:
[
label] DECF f,d
Operands:
0
≤ f ≤ 127
d
∈ [0,1]
Operation:
(f) - 1
→ (destination)
Status Affected:
Z
Encoding:
00
0011
dfff
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
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 ≤ 127
d
∈ [0,1]
Operation:
(f) - 1
→ (destination);
skip if result = 0
Status Affected:
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 instruc-
tion.
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-Operat
ion
No-Opera
tion
No-Operat
ion
No-Operati
on
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