摘《directShow实务精选》P319
在下面的介绍中,使用[]区分不同数据类型的指令,如mov[d,q]实际上是两个指令:movd和movq,前者是DWORD类型数据的转移指令,后者是QWORD类型数据的转移指令。
1.数据转移指令(Data Movement):
(1)movd;
(2)movq;一次性将32位或64位的数据在寄存器与内存之间转移。操作DWORD时,MMX寄存器只使用低32位。
2.算术指令:
(1)padd[b,w,d],无符号数加;
(2)padds[b,w],饱和模式的有符号数加;
(3)paddus[b,w],饱和模式的无符号数加;
(4)psub[b,w,d],无符号数减;
(5)psubs[b,w],饱和模式的有符号数减;
(6)psubus[b,w,d],饱和模式的无符号数减;
(7)pmulhw,WORD类型的有符号数相乘后取高16位;
(8)pmullw,WORD类型的有符号数相乘后取低16位;
(9)pmaddwd,WORD类型的向量点乘运算。
3.移位指令:
(1)psll[w,d,q],逻辑左移;
(2)psrl[w,d,q],逻辑右移;
(3)psra[w,d,q],算术右移。
4.逻辑指令:
(1)pand位与操作;
(2)pandn将目的操作数取反后再和源操作数做位与操作;
(3)por位或操作;
(4)pxor按位异或操作。
5.比较指令:
6.数据打包/拆包指令:
7.MMX状态清除指令:
转载于:点击打开链接