複製鏈接
請複製以下鏈接發送給好友

MMX指令集

(多媒體指令增強技術)

鎖定
MMX(Multi Media eXtension,多媒體擴展指令集)指令集是Intel公司於1996年推出的一項多媒體指令增強技術。MMX指令集中包括有57條多媒體指令,通過這些指令可以一次處理多個數據,在處理結果超過實際處理能力的時候也能進行正常處理,這樣在軟件的配合下,就可以得到更高的性能。
中文名
多媒體擴展指令集
外文名
Multi Media eXtension
公    司
Intel公司
推出年份
1996年

MMX指令集簡介

MMX的益處在於,當時存在的操作系統不必為此而做出任何修改便可以輕鬆地執行MMX程序。但是,問題也比較明顯,那就是MMX指令集與x86浮點運算指令不能夠同時執行,必須做密集式的交錯切換才可以正常執行,這種情況就勢必造成整個系統運行質量的下降。 [1] 

MMX指令集指令介紹

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狀態清除指令: [2] 
(MMX指令集的詳解可以閲讀參考資料: [3-6] 

MMX指令集CPU支持

如果CPU能夠具有了MMX指令集,就可以使用Visual Studio .NET 2003提供的對MMX指令集支持的C++函數庫了,可以查看MSDN中的一個Visual C++ CPUID的例子,它可以幫你檢測你的CPU是否支持SSE、MMX指令集或其它的CPU功能。 [7] 
參考資料