转自 http://baike.baidu.com/view/1547769.htm?fromTaglist
所谓饱和运算,就是当运算结果大于一个上限或小于一个下限时,结果就等于上限或是下限。例如:BYTE运算,最大值是255,0xF1+0x35应该是等于0x26,但由于结果大于255,那么饱和运算的结果就是0xFF。在图像处理里经常有(比如说增加亮度)两种灰度值运算后要判断值是否大于255或小于0,根据结果再取255或0,又是if又是什么的。现在只要一条指令就OK了。
这几条指令分别是: PADDS[B,W] 饱和有符号数加[byte, word] PADDUS[B,W] 饱和无符号数加[byte, word] PSUBS[B,W] 饱和有符号数减[byte, word] PSUBUS[B,W] 饱和无符号数减[byte, word] 是不是很方便啊!(有符号数就是有正有负,一个BYTE就是-128~127;无符号数就是都是正的,一个BYTE就是0~255) 注:PADDS[B,W]的意思就是PADDSB和PADDSW的简写,以下都将这样写。