3-528
INSTRUCTION SET REFERENCE
PMULLWPacked Multiply Low
Description
This instruction multiplies the four signed or unsigned words of the source operand (second
operand) with the four signed or unsigned words of the destination operand (first operand),
producing four doubleword, intermediate results (refer to Figure 3-73). The low-order word of
each intermediate result is then written to its corresponding word location in the destination
operand. The destination operand must be an MMX technology register; the source operand
may be either an MMX technology register or a 64-bit memory location.
Operation
DEST(15..0)
<
LowOrderWord(DEST(15..0)
?
SRC(15..0));
DEST(31..16)
<
LowOrderWord(DEST(31..16)
?
SRC(31..16));
DEST(47..32)
<
LowOrderWord(DEST(47..32)
?
SRC(47..32));
DEST(63..48)
<
LowOrderWord(DEST(63..48)
?
SRC(63..48));
Opcode
Instruction
Description
0F D5 /r
PMULLW mm,
mm/m64
Multiply the packed words in mm with the packed words in
mm/m64, then store the low-order word of each
doubleword result in mm.
Figure 3-73. Operation of the PMULLW Instruction
PMULLW mm, mm/m64
mm
mm/m64
mm
0111000111000111
1000000000000000
1000000000000000
0111000111000111
0000010000000000
0001110000000000
Low Order
Low Order
Low OrderLow Order
3006025
*
*
*
*