EMMS |
MMX狀態置空: 將FP特徵字置空(全1),使後續浮點指令可以使用浮點寄存器,其他MMX指令自動置FP爲全0.本指令應在所有MMX例程結束和調用可含有FP指令的例程時使用,以清除MMX狀態. |
|||||||||||||||||||||||||
MOVD mm,r/m32 MOVD r/m32,mm |
轉移32位數據: 將32位數據從整型寄存器/內存移到MMX寄存器,和反向移動.MOVD不能在MMX寄存器之間,內存之間及整型寄存器之間移動數據.目標操作數爲MMX寄存器時,32位源操作數寫入目標寄存器的低32位.目標寄存器"0擴展"爲64位.源操作數爲MMX寄存器時,該寄存器的低32位被寫入目標操作數. |
|||||||||||||||||||||||||
MOVQ mm,r/m64 MOVQ r.m64,mm |
轉移64位數據: 將64位數據從整型寄存器/內存移到MMX寄存器,和反向移動.目標操作數和源操作數可爲MMX寄存器,64位內存操作數.但MOVQ不能在內存和內存之間進行數據轉移. |
|||||||||||||||||||||||||
PACKSSWB mm,mm/m64 |
有符號飽和方式數據成組: 將MMX寄存器和MMX寄存器/內存單元中的有符號字組變成MMX寄存器的有符號字節組.和將MMX寄存器和MMX寄存器/內存單元中的有符號雙字組變成MMX寄存器的有符號字組.(注1) |
|||||||||||||||||||||||||
PACKUSWB mm,mm/m64 | 無符號飽和方式數據成組 將MMX寄存器和MMX寄存器/內存單元中的有符號字組變成MMX寄存器的無符號字節組.(注1) |
|||||||||||||||||||||||||
PADDB mm,mm/m64 |
環繞方式數據組相加: 按環繞方式將MMX寄存器/內存單元中的字節組(字組,雙字組)相加到MMX寄存器中(注1) |
|||||||||||||||||||||||||
PADDSB mm,mm/m64 |
飽和方式有符號數據組相加: 按飽和方式將MMX寄存器/內存單元中的有符號字節組(字組)相加到MMX寄存器中的有符號字節組(字組)數據.(注1) |
|||||||||||||||||||||||||
PADDUSB mm,mm/m64 |
飽和方式無符號數據組相加: 按飽和方式將MMX寄存器/內存單元中的無符號字節組(字組)相加到MMX寄存器中的無符號字節組(字組)數據.(注1) |
|||||||||||||||||||||||||
PAND mm,mm/m64 |
逐位邏輯與: 將MMX寄存器/內存單元中的64位數據進行與操作,結果存於MMX寄存器中. |
|||||||||||||||||||||||||
PANDN mm,mm/m64 |
逐位邏輯與非: 將MMX寄存器中的64位值取反,再將取反後的MMX寄存器與MMX寄存器/內存單元中的64位數據進行與操作,結果存於MMX寄存器中. |
|||||||||||||||||||||||||
PCMPEQB mm,mm/m64 |
成組數據的相等比較: 將MMX寄存器與MMX寄存器/內存單元中的字節組(字組,雙字組)數據進行相等比較. 該指令將目標操作數和源操作數的相應數據元素進行比較,相等則目標寄存器的對應數據元素被置爲全1,否則置爲全0. eg:PCMPEQE mm,mm/m64
|
|||||||||||||||||||||||||
PCMPGTB mm,mm/m64 |
成組數據的相等比較: 將MMX寄存器與MMX寄存器/內存單元中的字節組(字組,雙字組)數據進行大於比較. 該指令將目標操作數和源操作數的相應數據元素進行比較,大於則目標寄存器的對應數據元素被置爲全1,否則置爲全0.(參考上一條) |
|||||||||||||||||||||||||
PMADDWD mm,mm/m64 | 數據組(字組)的乘加: 將MMX寄存器與MMX寄存器/內存單元中的字組數據相乘,然後將32位結果逐對相加並作爲雙字存於MMX寄存器中. eg:PMADDWD mm,mm/m64
|
|||||||||||||||||||||||||
PMULHW mm,mm/m64 |
成組數據(字組)的乘後取高位: 將MMX寄存器與MMX寄存器/內存單元中的有符號字組數據相乘,然後將結果的高16位存入MMX寄存器. eg:PMULHW mm,mm/m64
|
|||||||||||||||||||||||||
PMULLW mm,mm/m64 |
成組數據(字組)的乘後取低位: 將MMX寄存器與MMX寄存器/內存單元中的有符號字組數據相乘,然後將結果的低16位存入MMX寄存器.(參考上一條) |
|||||||||||||||||||||||||
POR mm,mm/m64 | 逐位邏輯或: 將MMX寄存器/內存單元中的64位數據進行或操作,結果存於MMX寄存器中. |
|||||||||||||||||||||||||
PSLLW mm,mm/m64 |
成組數據的邏輯左移: 將MMX寄存器中的字(雙字,四字)數據按MMX寄存器/內存單元指定的個數左移,低位移入0. 將MMX寄存器中的字(雙字,四字)數據按8位立即數指定的個數左移,低位移入0. |
|||||||||||||||||||||||||
PSRAW mm,mm/m64 PSRAD mm,mm/m64 PSRAW mm,imm8 PSRAD mm,imm8 |
成組數據的算術右移: 將MMX寄存器中的字(雙字)數據按MMX寄存器/內存單元指定的個數右移,移動中保持符號位. 將MMX寄存器中的字(雙字)數據按8位立即數指定的個數右移,移動中保持符號位. |
|||||||||||||||||||||||||
PSRLW mm,mm/m64 PSRLD mm,mm/m64 PSRLQ mm,mm/m64 PSRLW mm,imm8 PSRLD mm,imm8 PSRLQ mm,imm8 |
成組數據的邏輯右移: 將MMX寄存器中的字(雙字)數據按MMX寄存器/內存單元指定的個數右移,移出位用0填充. 將MMX寄存器中的字(雙字)數據按8位立即數指定的個數右移,移出位用0填充. |
|||||||||||||||||||||||||
PSUBB mm,mm/m64 PSUBW mm,mm/m64 PSUBD mm,mm/m64 |
環繞方式成組數據相減: 從MMX寄存器中按字節(字,雙字)減去MMX寄存器/內存單元中的字節(字,雙字)組.(注1) |
|||||||||||||||||||||||||
PSUBSB mm,mm/m64 |
飽和方式有符號成組數據相減: 從MMX寄存器中的有符號成組字節(字)組數據減去MMX寄存器/內存單元中的有符號字節(字)組數據.(注1) |
|||||||||||||||||||||||||
PSUBUSB mm,mm/m64 PSUBUSW mm,mm/m64 |
飽和方式有符號成組數據相減: 從MMX寄存器中的無符號成組字節(字)組數據減去MMX寄存器/內存單元中的無符號字節(字)組數據.(注1) |
|||||||||||||||||||||||||
PUNPCKHBW mm,mm/m64 PUNPCKHWD mm,mm/m64 PUNPCKHDQ mm,mm/m64 |
高位成組數據分解: 此指令交替取出源操作數和目標操作數的數據元素的高半部分,寫入目標操作數中,數據元素的低半部分被忽略. eg:PUNPCKHBW mm,mm/m64 |
|||||||||||||||||||||||||
PUNPCKLBW mm,mm/m64 PUNPCKLWD mm,mm/m64 PUNPCKLDQ mm,mm/m64 |
低位成組數據分解: 此指令交替取出源操作數和目標操作數的數據元素的低半部分,寫入目標操作數中,數據元素的高半部分被忽略.(參考上一條) |
|||||||||||||||||||||||||
PXOR mm,mm/m64 | 逐位邏輯異或: 將MMX寄存器/內存單元中的64位數據進行異或操作,結果存於MMX寄存器中. |
MMX指令集(詳解)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.