PIC18CXX2
MULLW
MULWF
Multiply Literal with WREG
Multiply WREG with f
[ label ] MULWF f,a
0 ≤ f ≤ 255
Syntax:
[ label ] MULLW
k
Syntax:
Operands:
Operation:
0 ≤ k ≤ 255
Operands:
a
[0,1]
(WREG) x k → PRODH:PRODL
Operation:
(WREG) x (f) → PRODH:PRODL
Status Affected:
Encoding:
None
Status Affected:
Encoding:
None
0000
1101
kkkk
kkkk
0000
001a
ffff
ffff
Description:
An unsigned multiplication is car-
ried out between the contents of
Description:
An unsigned multiplication is car-
ried out between the contents of
WREG and the 8-bit literal ’k’.
The 16-bit result is placed in
PRODH:PRODL register pair.
PRODH contains the high byte.
WREG and the register file loca-
tion ’f’. The 16-bit result is stored
in the PRODH:PRODL register
pair. PRODH contains the high
byte.
WREG is unchanged.
None of the status flags are
affected.
Both WREG and ’f’ are
unchanged.
Note that neither overflow nor
carry is possible in this opera-
tion. A zero result is possible but
not detected.
None of the status flags are
affected.
Note that neither overflow nor
carry is possible in this opera-
tion. A zero result is possible but
not detected. If ’a’ is 0, the
Words:
Cycles:
1
1
Access Bank will be selected,
overriding the BSR value. If ’a’ =
1, then the bank will be selected
as per the BSR value (default).
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
literal ’k’
Process
Data
Write
registers
PRODH:
PRODL
Words:
Cycles:
1
1
Q Cycle Activity:
Q1
MULLW
=
0xC4
Example:
Q2
Q3
Q4
Before Instruction
Decode
Read
register ’f’
Process
Data
Write
WREG
PRODH
PRODL
0xE2
registers
PRODH:
PRODL
=
=
?
?
After Instruction
WREG
PRODH
PRODL
=
=
=
0xE2
0xAD
0x08
MULWF
=
REG, 1
Example:
Before Instruction
WREG
0xC4
REG
PRODH
PRODL
=
=
=
0xB5
?
?
After Instruction
WREG
=
0xC4
REG
PRODH
PRODL
=
=
=
0xB5
0x8A
0x94
DS39026B-page 218
Preliminary
7/99 Microchip Technology Inc.