|
|
MMX Instructions |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
Arithmetic
Name
| Regs
| Opcode
| Description
|
PADDB
| register, memory/register
| 0F FC mod-rm
| Add with wrap-around on byte
|
PADDW
| register, memory/register
| 0F FD mod-rm
| Add with wrap-around on word
|
PADDD
| register, memory/register
| 0F FE mod-rm
| Add with wrap-around on doubleword
|
PADDSB
| register, memory/register
| 0F EC mod-rm
| Add signed with saturation on byte
|
PADDSW
| register, memory/register
| 0F ED mod-rm
| Add signed with saturation on word
|
PADDUSB
| register, memory/register
| 0F DC mod-rm
| Add unsigned with saturation on byte
|
PADDUSW
| register, memory/register
| 0F DD mod-rm
| Add unsigned with saturation on word
|
PSUBB
| register, memory/register
| 0F F8 mod-rm
| Subtraction with wrap-around on byte
|
PSUBW
| register, memory/register
| 0F F9 mod-rm
| Subtraction with wrap-around on word
|
PSUBD
| register, memory/register
| 0F FA mod-rm
| Subtraction with wrap-around on doubleword
|
PSUBSB
| register, memory/register
| 0F E8 mod-rm
| Subtract signed with saturation on byte
|
PSUBSW
| register, memory/register
| 0F E9 mod-rm
| Subtract signed with saturation on word
|
PSUBUSB
| register, memory/register
| 0F D8 mod-rm
| Subtract unsigned with saturation on byte
|
PSUBUSW
| register, memory/register
| 0F D9 mod-rm
| Subtract unsigned with saturation on word
|
PMULHW
| register, memory/register
| 0F E5 mod-rm
| Packed multiply high on words
|
PMULLW
| register, memory/register
| 0F D5 mod-rm
| Packed multiply low on words
|
PMADDWD
| register, memory/register
| 0F F5 mod-rm
| Packed multiply on words and add resulting pairs |
Comparison
Name
| Regs
| Opcode
| Description
|
PCMPEQB
| register, memory/register
| 0F 74 mod-rm,
| Packed compare for equality byte
|
PCMPEQW
| register, memory/register
| 0F 75 mod-rm
| Packed compare for equality word
|
PCMPEQD
| register, memory/register
| 0F 76 mod-rm
| Packed compare for equality doubleword
|
PCMPGTB
| register, memory/register
| 0F 64 mod-rm
| Packed compare greater than byte
|
PCMPGTW
| register, memory/register
| 0F 65 mod-rm
| Packed compare greater than word
|
PCMPGTD
| register, memory/register
| 0F 66 mod-rm
| Packed compare greater than doubleword |
Conversion
Name
| Regs
| Opcode
| Description
|
PACKUSWB
| register, memory/register
| 0F 67 mod-rm
| Pack words into bytes (unsigned with saturation)
|
PACKSSWB
| register, memory/register
| 0F 63 mod-rm
| Pack words into bytes (signed with saturation)
|
PACKSSDW
| register, memory/register
| 0F 6B mod-rm
| Pack doublewords into words (signed with saturation)
|
PUNPCKHBW
| register, memory/register
| 0F 68 mod-rm
| Unpack (interleave) high-order bytes from MMX TM register
|
PUNPCKHWD
| register, memory/register
| 0F 69 mod-rm
| Unpack (interleave) high-order words from MMX TM register
|
PUNPCKHDQ
| register, memory/register
| 0F 6A mod-rm
| Unpack (interleave) high-order doublewords from MMX TM register
|
PUNPCKLBW
| register, memory/register
| 0F 60 mod-rm
| Unpack (interleave) low-order bytes from MMX register
|
PUNPCKLWD
| register, memory/register
| 0F 61 mod-rm
| Unpack (interleave) low-order words from MMX register
|
PUNPCKLDQ
| register, memory/register
| 0F 62 mod-rm
| Unpack (interleave) low-order doublewords from MMX register |
Logical
Name
| Regs
| Opcode
| Description
|
PAND
| register, memory/register
| 0F DB mod-rm
| Bitwise AND
|
PANDN
| register, memory/register
| 0F DF mod-rm
| Bitwise AND NOT
|
POR
| register, memory/register
| 0F EB mod-rm
| Bitwise OR
|
PXOR
| register, memory/register
| 0F EF mod-rm
| Bitwise XOR |
Shift
Name
| Regs
| Opcode
| Description
|
PSLLW
| register, memory/register
| 0F F1 mod-rm
| Packed shift left logical word by amount specified in MMX register or by immediate value
|
PSLLD
| register, memory/register
| 0F F2 mod-rm, [sib]
| Packed shift left logical doubleword by amount specified in MMX register or by immediate value
|
PSLLQ
| register, memory/register
| 0F F3 mod-rm
| Packed shift left logical quadword by amount specified in MMX register or by immediate value
|
PSRLW
| register, memory/register
| 0F D1 mod-rm
| Packed shift right logical word by amount specified in MMX register or by immediate value
|
PSRLD
| register, memory/register
| 0F D2 mod-rm
| Packed shift right logical doubleword by amount specified in MMX register or by immediate value
|
PSRLQ
| register, memory/register
| 0F D3 mod-rm
| Packed shift right logical quadword by amount specified in MMX register or by immediate value
|
PSRAW
| register, memory/register
| 0F E1 mod-rm
| Packed shift right arithmetic word by amount specified in MMX register or by immediate value
|
PSRAD
| register, memory/register
| 0F E2 mod-rm
| Packed shift right arithmetic doubleword by amount specified in MMX register or by immediate value
|
PSHIMW*
| register, immediate
| 0F 71 mod-rm, imm
|
|
PSHIMD*
| register, immediate
| 0F 72 mod-rm, imm
|
|
PSHIMQ*
| register, immediate
| 0F 73 mod-rm, imm
| | Notes: * These are not the actual mnemonics: PSHIMD represents the PSLLD, PSRAD and PSRLD instructions when shifting by immediate shift counts. PSHIMW represents the PSLLW, PSRAW and PSRLW instructions when shifting by immediate shift counts. PSHIMQ represents the PSLLQ and PSRLQ instructions when shifting by immediate shift counts. The instructions that shift by immediate counts are differentiated by the ModR/M bytes.
Data Transfer
Name
| Regs
| Opcode
| Description
|
MOVD
| register, memory/iregister
| 0F 6E mod-rm
| Move doubleword to MMX register or from MMX register
|
MOVD
| memory/iregister, register
| 0F 7E mod-rm
| Move doubleword to MMX register or from MMX register
|
MOVQ
| register, memory/register
| 0F 6F mod-rm
| Move quadword to MMX register or from MMX register
|
MOVQ
| memory/register, register
| 0F 7F mod-rm
| Move quadword to MMX register or from MMX register |
FP & MMX State Mgmt
Name
| Regs
| Opcode
| Description
|
EMMS
|
| 0F 77
| Empty MMX state | 
|
|
相关文章:相关软件: |
|