PSUBSB Subtract Signed with Saturation on Byte
PSUBSB destination, source CPU: MMX
Logic
mm(7..0) <- SaturateToSignedByte (mm(7..0) - mm/m64 (7..0) )
mm(15..8) <- SaturateToSignedByte (mm(15..8) - mm/m64(15..8) )
mm(23..16) <- SaturateToSignedByte (mm(23..16) - mm/m64(23..16))
mm(31..24) <- SaturateToSignedByte (mm(31..24) - mm/m64(31..24))
mm(39..32) <- SaturateToSignedByte (mm(39..32) - mm/m64(39..32))
mm(47..40) <- SaturateToSignedByte (mm(47..40) - mm/m64(47..40))
mm(55..48) <- SaturateToSignedByte (mm(55..48) - mm/m64(55..48))
mm(63..56) <- SaturateToSignedByte (mm(63..56) - mm/m64(63..56))
PSUBSB subtracts the signed bytes of the source operand from the
signed bytes of the destination operand, and writes the results to
the destination register.
If the result is larger or smaller than the range of a signed byte,
the value is saturated; in the case of an overflow - to 7Fh, and in
the case of an underflow - to 80h.
The destination operand is an MMX register. The source operand can
either be an MMX register or a 64-bit memory operand.
Opcode Format
0F E8 /r PSUBSB mm, mm/m64