PIC18F2331/2431/4331/4431
MULLW
Multiply Literal with W
MULWF
Multiply W with f
Syntax:
[ label ] MULLW
0 k 255
k
Syntax:
[ label ] MULWF f [,a]
Operands:
Operation:
Status Affected:
Encoding:
Description:
Operands:
0 f 255
a [0,1]
(W) x k PRODH:PRODL
Operation:
(W) x (f) PRODH:PRODL
None
Status Affected:
Encoding:
None
0000
1101
kkkk
kkkk
0000
001a
ffff
ffff
An unsigned multiplication is carried
out between the contents of W and
the 8-bit literal, ‘k’. The 16-bit result
is placed in PRODH:PRODL register
pair. PRODH contains the high byte.
W is unchanged.
Description:
An unsigned multiplication is carried
out between the contents of W and
the register file location, ‘f’. The
16-bit result is stored in the
PRODH:PRODL register pair.
None of the Status flags are affected.
Note that neither Overflow nor Carry
is possible in this operation. A Zero
result is possible but not detected.
PRODH contains the high byte.
Both W and ‘f’ are unchanged.
None of the Status flags are affected.
Note that neither Overflow nor Carry
is possible in this operation. A Zero
result is possible but not detected. 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.
Words:
Cycles:
1
1
Q Cycle Activity:
Q1
Q2
Q3
Q4
Decode
Read
literal ‘k’
Process
Data
Write
Words:
Cycles:
1
1
registers
PRODH:
PRODL
Q Cycle Activity:
Q1
Q2
Q3
Q4
Example:
MULLW
0xC4
0xE2
?
?
Decode
Read
register ‘f’
Process
Data
Write
Before Instruction
registers
PRODH:
PRODL
W
PRODH
PRODL
=
=
=
After Instruction
W
Example:
MULWF
REG
=
=
=
0xE2
0xAD
0x08
Before Instruction
PRODH
PRODL
W
REG
PRODH
PRODL
=
=
=
=
0xC4
0xB5
?
?
After Instruction
W
=
=
=
=
0xC4
0xB5
0x8A
0x94
REG
PRODH
PRODL
DS39616D-page 310
2010 Microchip Technology Inc.