PIC16C925/926
SUBLW
Subtract W from Literal
Syntax:
Operands:
[ label ] SUBLW k
0 ≤ k ≤ 255
Operation:
k - (W) → (W)
Status Affected: C, DC, Z
Encoding:
11
110x kkkk kkkk
Description:
Words:
The W register is subtracted (2’s
complement method) from the eight-
bit literal 'k'. The result is placed in the
W register.
1
Cycles:
1
Q Cycle Activity: Q1
Q2
Q3
Q4
Decode
Read
literal ’k’
Process
data
Write to W
Example 1:
SUBLW 0x02
Before Instruction:
W= 1
C= ?
Z=?
After Instruction:
W= 1
C = 1; result is positive
Z=0
Example 2:
Before Instruction:
W= 2
C= ?
Z=?
After Instruction:
W= 0
C = 1; result is zero
Z=1
Example 3:
Before Instruction:
W= 3
C= ?
Z=?
After Instruction:
W = 0xFF
C = 0; result is negative
Z=0
SUBWF
Subtract W from f
Syntax:
Operands:
[ label ] SUBWF f [,d]
0 ≤ f ≤ 127
d ∈ [0,1]
Operation:
(f) - (W) → (destination)
Status Affected: C, DC, Z
Encoding:
00
0010 dfff ffff
Description:
Subtract (2’s complement method) W
register from 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 Write to
data destination
Example 1:
SUBWF REG1,1
Before Instruction:
REG1 = 3
W
=2
C
=?
Z
=?
After Instruction:
REG1 = 1
W
=2
C
= 1; result is positive
Z
=0
Example 2:
Before Instruction:
REG1 = 2
W
=2
C
=?
Z
=?
After Instruction:
REG1 = 0
W
=2
C
= 1; result is zero
Z
=1
Example 3:
Before Instruction:
REG1 = 1
W
=2
C
=?
Z
=?
After Instruction:
REG1 = 0xFF
W
=2
C
= 0; result is negative
Z
=0
2001 Microchip Technology Inc.
Preliminary
DS39544A-page 129