PIC18CXX2
DECF
Decrement f
DAW
Decimal Adjust WREG Register
Syntax:
Operands:
[ label ] DECF f,d,a
Syntax:
[label] DAW
None
0 ≤ f ≤ 255
Operands:
Operation:
d
a
[0,1]
[0,1]
If [WREG<3:0> >9] or [DC = 1]
then
Operation:
(f) – 1 → dest
(WREG<3:0>) + 6 → WREG<3:0>;
else
Status Affected:
Encoding:
C,DC,N,OV,Z
0000
01da
ffff
ffff
(WREG<3:0>) → WREG<3:0>;
Description:
Decrement register 'f'. If 'd' is 0, the
If [WREG<7:4> >9] or [C = 1] then
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).
(WREG<7:4>) + 6 → WREG<7:4>;
else
(WREG<7:4>) → WREG<7:4>;
Status Affected:
Encoding:
C
0000
0000
0000
0111
Words:
Cycles:
1
1
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.
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
register ’f’
Process
Data
Write to
destination
Words:
Cycles:
1
1
DECF
CNT,
1, 0
Example:
Q Cycle Activity:
Q1
Before Instruction
Q2
Q3
Q4
CNT
Z
=
0x01
0
Decode
Read
register
WREG
Process
Data
Write
WREG
=
After Instruction
CNT
Z
=
=
0x00
1
DAW
Example1:
Before Instruction
WREG
=
0xA5
C
DC
=
=
0
0
After Instruction
WREG
=
0x05
C
DC
=
=
1
0
Example 2:
Before Instruction
WREG
=
0xCE
C
DC
=
=
0
0
After Instruction
WREG
=
0x34
C
DC
=
=
1
0
DS39026B-page 210
Preliminary
7/99 Microchip Technology Inc.