Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(1) - 概述 & 传输指令

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/86611793

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);

 

猜你喜欢

转载自blog.csdn.net/qq_43401808/article/details/86611793