Opcode PADDUSB


CPU: all which supported IA MMX:
Pentium (P55C only), Pentium (tm) Pro (P6) future models
Type of Instruction: User

Instruction: PADDUSB dest,src

Description:

dest[7..0] <- SaturateToUnsignedByte(dest[7..0] + src[7..0])
dest[15..8] <- SaturateToUnsignedByte(dest[15..8] + src[15..8])
dest[23..16] <- SaturateToUnsignedByte(dest[23..16] + src[23..16])
dest[31..24] <- SaturateToUnsignedByte(dest[31..24] + src[31..24])
dest[39..32] <- SaturateToUnsignedByte(dest[39..32] + src[39..32])
dest[47..40] <- SaturateToUnsignedByte(dest[47..40] + src[47..40])
dest[55..48] <- SaturateToUnsignedByte(dest[55..48] + src[55..48])
dest[63..56] <- SaturateToUnsignedByte(dest[63..56] + src[63..56])

Note: This instruction adds the unsigned bytes of the source to the
unsigned bytes of the destination operand and writes the results to the
MMX register.
When the result is larger than the range of an unsigned byte
(overflow), the value is saturated to FFH. When the result is smaller
than the range of an unsigned byte (underflow), the value is saturated
to 00H.

Flags affected: None

Exceptions:

RM PM VM SMM Description
#GP(0) If Illegal memory operand's EA in CS,DS,ES,FS,GS
#SS(0) If illegal memory operand's EA in SS
#PF(fcode) If page fault
#AC #AC If unaligned memory reference then alignment
check enabled and in ring 3.
#UD #UD #UD #UD If CR0.EM = 1
#NM #NM #NM #NM If CR0.TS = 1
#MF #MF #MF #MF If pending FPU Exception
#13 #13 If any part of the the operand lies outside of
the EA space from 0 to FFFFH
++++++++++++++++++++++++++++++++++++++
COP & Times:

PADDUSB mm,mm/m64 0FH DCH PostByte

P55C: n/a
future P6: n/a


Copyright by InternetNightmare 2005-2006