Datasheet

Table Of Contents
© 2007 Microchip Technology Inc. DS39605F-page 227
PIC18F1220/1320
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