Datasheet

© 2007 Microchip Technology Inc. DS39599G-page 293
PIC18F2220/2320/4220/4320
SUBLW Subtract W from Literal
Syntax: [ label ]SUBLW k
Operands: 0 k 255
Operation: k – (W) W
Status Affected: N, OV, C, DC, Z
Encoding:
0000 1000 kkkk kkkk
Description: W is subtracted from the eight-bit
literal ‘k’. The result is placed in
W.
Words: 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=?
After Instruction
W=1
C = 1 ; result is positive
Z=0
N=0
Example 2:
SUBLW 0x02
Before Instruction
W=2
C=?
After Instruction
W=0
C = 1 ; result is zero
Z=1
N=0
Example 3:
SUBLW 0x02
Before Instruction
W=3
C=?
After Instruction
W = FF ; (2’s complement)
C = 0 ; result is negative
Z=0
N=1
SUBWF Subtract W from f
Syntax:
[ label ] SUBWF f [,d [,a]]
Operands: 0 f 255
d [0,1]
a [0,1]
Operation: (f) – (W) dest
Status Affected: N, OV, C, DC, Z
Encoding:
0101 11da ffff ffff
Description: Subtract W from register ‘f’ (2’s
complement method). If ‘d’ is0’,
the result is stored in W. If ‘d’ is
1’, the result is stored back in
register ‘f’ (default). If = ‘a’ is ‘0’,
the Access Bank will be selected,
overriding the BSR value. If ‘a’ is
1’, then the bank will be selected
as per the BSR value (default).
Words: 1
Cycles: 1
Q Cycle Activity:
Q1 Q2 Q3 Q4
Decode Read
register ‘f’
Process
Data
Write to
destination
Example 1:
SUBWF REG
Before Instruction
REG = 3
W=2
C=?
After Instruction
REG = 1
W=2
C = 1 ; result is positive
Z=0
N=0
Example 2:
SUBWF REG, W
Before Instruction
REG = 2
W=2
C=?
After Instruction
REG = 2
W=0
C = 1 ; result is zero
Z=1
N=0
Example 3:
SUBWF REG
Before Instruction
REG = 0x01
W = 0x02
C=?
After Instruction
REG = 0xFFh ;(2’s complement)
W = 0x02
C = 0x00 ; result is negative
Z = 0x00
N = 0x01