Revision 3.1
235
www.national.com
Instruction Set (
Continued
)
G
Table 9-33. Extended MMX Instruction Set Summary
MMX Instructions
Opcode
Operation and Clock Count
PADDSIW
Packed Add Signed Word with Saturation Using Implied Destination
MMX Register plus MMX Register to Implied Register
Memory plus MMX Register to Implied Register
0F51 [11 mm1 mm2]
0F51 [mod mm r/m]
Sum signed packed word from MMX register/memory --->
signed packed word in MMX register, saturate, and write result
---> implied register
1
1
PAVEB
Packed Average Byte
MMX Register 2 with MMX Register 1
Memory with MMX Register
0F50 [11 mm1 mm2]
0F50 [mod mm r/m]
Average packed byte from the MMX register/memory with
packed byte in the MMX register. Result is placed in the MMX
register.
1
1
PDISTIB
Packed Distance and Accumulate with Implied Register
Memory, MMX Register to Implied Register
0F54 [mod mm r/m]
Find absolute value of difference between packed byte in
memory and packed byte in the MMX register. Using unsigned
saturation, accumulate with value in implied destination regis-
ter.
2
PMACHRIW
Packed Multiply and Accumulate with Rounding
Memory to MMX Register
0F5E[mod mm r/m]
Multiply the packed word in the MMX register by the packed
word in memory. Sum the 32-bit results pairwise. Accumulate
the result with the packed signed word in the implied destina-
tion register.
2
PMAGW
Packed Magnitude
MMX Register 2 to MMX Register 1
Memory to MMX Register
0F52 [11 mm1 mm2]
0F52 [mod mm r/m]
Set the destination equal ---> the packed word with the largest
magnitude, between the packed word in the MMX regis-
ter/memory and the MMX register.
2
2
PMULHRIW
Packed Multiply High with Rounding, Implied Destination
MMX Register 2 to MMX Register1
Memory to MMX Register
PMULHRW
Packed Multiply High with Rounding
MMX Register 2 to MMX Register 1
Memory to MMX Register
0F5D [11 mm1 mm2]
0F5D [mod mm r/m]
Packed multiply high with rounding and store bits 30 - 15 in
implied register.
2
2
0F59 [11 mm1 mm2]
0F59 [mod mm r/m]
Multiply the signed packed word in the MMX register/memory
with the signed packed word in the MMX register. Round with
1/2 bit 15, and store bits 30 - 15 of result in the MMX register.
2
2
PMVGEZB
Packed Conditional Move If Greater Than or Equal to Zero
Memory to MMX Register
0F5C [mod mm r/m]
Conditionally move packed byte from memory ---> packed byte
in the MMX register if packed byte in implied MMX register is
greater than or equal ---> zero.
1
PMVLZB
Packed Conditional Move If Less Than Zero
Memory to MMX Register
0F5B [mod mm r/m]
Conditionally move packed byte from memory ---> packed byte
in the MMX register if packed byte in implied MMX register is
less than zero.
1
PMVNZB
Packed Conditional Move If Not Zero
Memory to MMX Register
0F5A [mod mm r/m]
Conditionally move packed byte from memory ---> packed byte
in the MMX register if packed byte in implied MMX register is
not zero.
1
PMVZB
Packed Conditional Move If Zero
Memory to MMX Register
0F58 [mod mm r/m]
Conditionally move packed byte from memory ---> packed byte
in the MMX register if packed byte in implied the MMX register
is zero.
1
PSUBSIW
Packed Subtracted with Saturation Using Implied Destination
MMX Register 2 to MMX Register 1
Memory to MMX Register
0F55 [11 mm1 mm2]
0F55 [mod mm r/m]
Subtract signed packed word in the MMX register/memory from
signed packed word in the MMX register, saturate, and write
result ---> implied register.
1
1