MMX Instructions

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航