Datasheet
PIC18CXX2
DS39026D-page 206 1999-2013 Microchip Technology Inc.
DAW Decimal Adjust WREG Register
Syntax: [label] DAW
Operands: None
Operation: If [WREG<3:0> >9] or [DC = 1] then
(WREG<3:0>) + 6 WREG<3:0>;
else
(WREG<3:0>) WREG<3:0>;
If [WREG<7:4> >9] or [C = 1] then
(WREG<7:4>) + 6 WREG<7:4>;
else
(WREG<7:4>) WREG<7:4>;
Status Affected: C
Encoding:
0000 0000 0000 0111
Description: DAW adjusts the eight-bit value in
WREG, resulting from the earlier
addition of two variables (each in
packed BCD format) and produces
a correct packed BCD result.
Words: 1
Cycles: 1
Q Cycle Activity:
Q1 Q2 Q3 Q4
Decode Read
register
WREG
Process
Data
Write
WREG
Example1:
DAW
Before Instruction
WREG = 0xA5
C=0
DC = 0
After Instruction
WREG = 0x05
C=1
DC = 0
Example 2:
Before Instruction
WREG = 0xCE
C=0
DC = 0
After Instruction
WREG = 0x34
C=1
DC = 0
DECF Decrement f
Syntax: [ label ] DECF f [,d [,a]
Operands: 0 f 255
d [0,1]
a [0,1]
Operation: (f) – 1 dest
Status Affected: C,DC,N,OV,Z
Encoding:
0000 01da ffff ffff
Description: Decrement register 'f'. If 'd' is 0, the
result is stored in WREG. 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’ = 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:
DECF CNT, 1, 0
Before Instruction
CNT = 0x01
Z=0
After Instruction
CNT = 0x00
Z=1