MMX Instructions (转)

本文详细介绍了MMX指令集中的各类指令,包括算术运算、比较、数据转换、逻辑操作、移位及数据传输等。每种指令均配有其对应的寄存器、操作码和描述说明,为读者提供了一个全面了解MMX指令特性的资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MMX Instructions (转)[@more@]

Arithmetic


Name Regs Opcode Description PAD db 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 PADD usb 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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-987515/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-987515/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值