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

Instruction: PADDUSB dest,src


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


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