
PIC17C4X
DS30412C-page 120
1996 Microchip Technology Inc.
CPFSLT
Compare f with WREG,
skip if f < WREG
Syntax:
[
label ] CPFSLT
f
Operands:
0
≤ f ≤ 255
Operation:
(f) –
(WREG),
skip if (f) < (WREG)
(unsigned comparison)
Status Affected:
None
Encoding:
0011
0000
ffff
Description:
Compares the contents of data memory
location 'f' to the contents of WREG by
performing an unsigned subtraction.
If the contents of 'f' < the contents of
WREG, then the fetched instruction is
discarded and an NOP is executed
instead making this a two-cycle instruc-
tion.
Words:
1
Cycles:
1 (2)
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
register 'f'
Execute
NOP
If skip:
Q1
Q2
Q3
Q4
Forced NOP
NOP
Execute
NOP
Example:
HERE
CPFSLT REG
NLESS
:
LESS
:
Before Instruction
PC
=
Address (HERE)
W=
?
After Instruction
If REG
<
WREG;
PC
=
Address (LESS)
If REG
≥
WREG;
PC
=
Address (NLESS)
DAW
Decimal Adjust WREG Register
Syntax:
[
label] DAW
f,s
Operands:
0
≤ f ≤ 255
s
∈ [0,1]
Operation:
If [WREG<3:0> >9] .OR. [DC = 1] then
WREG<3:0> + 6
→ f<3:0>, s<3:0>;
else
WREG<3:0>
→ f<3:0>, s<3:0>;
If [WREG<7:4> >9] .OR. [C = 1] then
WREG<7:4> + 6
→ f<7:4>, s<7:4>
else
WREG<7:4>
→ f<7:4>, s<7:4>
Status Affected:
C
Encoding:
0010
111s
ffff
Description:
DAW adjusts the eight bit value in
WREG resulting from the earlier addi-
tion of two variables (each in packed
BCD format) and produces a correct
packed BCD result.
s = 0:
Result is placed in Data
memory location 'f' and
WREG.
s = 1:
Result is placed in Data
memory location 'f'.
Words:
1
Cycles:
1
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
register 'f'
Execute
Write
register 'f'
and other
specied
register
Example1:
DAW
REG1, 0
Before Instruction
WREG
=
0xA5
REG1
=
??
C=
0
DC
=
0
After Instruction
WREG
=
0x05
REG1
=
0x05
C=
1
DC
=
0
Example 2:
Before Instruction
WREG
=
0xCE
REG1
=
??
C=
0
DC
=
0
After Instruction
WREG
=
0x24
REG1
=
0x24
C=
1
DC
=
0