MMX™ Instructions
IA-32架构引入了4个指令集扩展,使得IA-32处理器可以执行单指令多数据SIMD操作。这些扩展包括MMX技术,SSE扩展,SSE2扩展,SSE3扩展。
MMX指令可以运行在支持MMX技术的Intel 64和IA-32处理器上。对MMX指令的支持可以通过CPUID查询。
MMX技术的57条指令可以分为以下的子组:数据传输,转换,组合的算术,比较,逻辑,移位,和循环移位操作,以及状态管理指令。
MMX Data Types
MMX指令处理组合的字节,单字,双字与四字整型操作数,这些操作数可以位于存储器中,MMX寄存器中,和/或通用寄存器中。下图未列出四字数据类型,实际上也受MMX指令支持。
MMX Registers
除了数据类型之外,还有8个64位的MMX寄存器,可以通过MM0到MM7引用。参看下图。
MMX技术对操作系统透明,而且100%兼容已有的软件。因此所有的应用程序可以继续运行在带有MMX技术的处理器上。关于MMX的指令集可以参看Intel Architecture MMX™ Technology Programmer’s Reference Manual, Order#: 243007。
MMX Data Transfer Instruction
MMX数据传输指令在MMX寄存器之间或MMX寄存器/存储器之间搬移双字/四字操作数。
指令 | 描述 |
MOVD | 格式:MOVD mm, r/m32 将r/m32(两个双字)搬移到mm中。 Intel C/C++ Compiler Intrinsic Equivalent MOVD: __m64 _mm_cvtsi32_si64 (int i) MOVD: int _mm_cvtsi64_si32 (__m64m) |
MOVQ | 格式:MOVQ mm, r/m64 将r/m64(一个四字)搬移到mm中。 Intel C/C++ Compiler Intrinsic Equivalent MOVQ: __m128i _mm_cvtsi64_si128(__int64); |