Intel体系MMX指令指令说明
Intel体系MMX指令&指令说明
EMMS |
MMX状态置空: 将FP特征字置空(全1),使后续浮点指令可以使用浮点寄存器,其他MMX指令自动置FP为全0.本指令应在所有MMX例程结束和调用可含有FP指令的例程时使用,以清除MMX状态. |
|||||||||||||||||||||||||
MOVD mm,r/m32 MOVD r/m32,mm |
转移32位数据: 将32位数据从整型寄存器/内存移到MMX寄存器,和反向移动.MOVD不能在MMX寄存器之间,内存之间及整型寄存器之间移动数据.目标操作数为MMX寄存器时,32位源操作数写入目标寄存器的低32位.目标寄存器"0扩展"为64位.源操作数为MMX寄存器时,该寄存器的低32位被写入目标操作数. |
|||||||||||||||||||||||||
MOVQ mm,r/m64 MOVQ r.m64,mm |
转移64位数据: 将64位数据从整型寄存器/内存移到MMX寄存器,和反向移动.目标操作数和源操作数可为MMX寄存器,64位内存操作数.但MOVQ不能在内存和内存之间进行数据转移. |
|||||||||||||||||||||||||
PACKSSWB mm,mm/m64 |
有符号饱和方式数据成组: 将MMX寄存器和MMX寄存器/内存单元中的有符号字组变成MMX寄存器的有符号字节组.和将MMX寄存器和MMX寄存器/内存单元中的有符号双字组变成MMX寄存器的有符号字组.(注1) |
|||||||||||||||||||||||||
PACKUSWB mm,mm/m64 |
无符号饱和方式数据成组 将MMX寄存器和MMX寄存器/内存单元中的有符号字组变成MMX寄存器的无符号字节组.(注1) |
|||||||||||||||||||||||||
PADDB mm,mm/m64 |
环绕方式数据组相加: 按环绕方式将MMX寄存器/内存单元中的字节组(字组,双字组)相加到MMX寄存器中(注1) |
|||||||||||||||||||||||||
PADDSB mm,mm/m64 |
饱和方式有符号数据组相加: 按饱和方式将MMX寄存器/内存单元中的有符号字节组(字组)相加到MMX寄存器中的有符号字节组(字组)数据.(注1) |
|||||||||||||||||||||||||
PADDUSB mm,mm/m64 |
饱和方式无符号数据组相加: 按饱和方式将MMX寄存器/内存单元中的无符号字节组(字组)相加到MMX寄存器中的无符号字节组(字组)数据.(注1) |
|||||||||||||||||||||||||
PAND mm,mm/m64 |
逐位逻辑与: 将MMX寄存器/内存单元中的64位数据进行与操作,结果存于MMX寄存器中. |
|||||||||||||||||||||||||
PANDN mm,mm/m64 |
逐位逻辑与非: 将MMX寄存器中的64位值取反,再将取反后的MMX寄存器与MMX寄存器/内存单元中的64位数据进行与操作,结果存于MMX寄存器中. |
|||||||||||||||||||||||||
PCMPEQB mm,mm/m64 |
成组数据的相等比较: 将MMX寄存器与MMX寄存器/内存单元中的字节组(字组,双字组)数据进行相等比较. 该指令将目标操作数和源操作数的相应数据元素进行比较,相等则目标寄存器的对应数据元素被置为全1,否则置为全0. eg:PCMPEQE mm,mm/m64
|
|||||||||||||||||||||||||
PCMPGTB mm,mm/m64 |
成组数据的相等比较: 将MMX寄存器与MMX寄存器/内存单元中的字节组(字组,双字组)数据进行大于比较. 该指令将目标操作数和源操作数的相应数据元素进行比较,大于则目标寄存器的对应数据元素被置为全1,否则置为全0.(参考上一条) |
|||||||||||||||||||||||||
PMADDWD mm,mm/m64 |
数据组(字组)的乘加: 将MMX寄存器与MMX寄存器/内存单元中的字组数据相乘,然后将32位结果逐对相加并作为双字存于MMX寄存器中. eg:PMADDWD mm,mm/m64
|
|||||||||||||||||||||||||
PMULHW mm,mm/m64 |
成组数据(字组)的乘后取高位: 将MMX寄存器与MMX寄存器/内存单元中的有符号字组数据相乘,然后将结果的高16位存入MMX寄存器. eg:PMULHW mm,mm/m64
|
|||||||||||||||||||||||||
PMULLW mm,mm/m64 |
成组数据(字组)的乘后取低位: 将MMX寄存器与MMX寄存器/内存单元中的有符号字组数据相乘,然后将结果的低16位存入MMX寄存器.(参考上一条) |
|||||||||||||||||||||||||
POR mm,mm/m64 |
逐位逻辑或: 将MMX寄存器/内存单元中的64位数据进行或操作,结果存于MMX寄存器中. |
|||||||||||||||||||||||||
PSLLW mm,mm/m64 |
成组数据的逻辑左移: 将MMX寄存器中的字(双字,四字)数据按MMX寄存器/内存单元指定的个数左移,低位移入0. 将MMX寄存器中的字(双字,四字)数据按8位立即数指定的个数左移,低位移入0. |
|||||||||||||||||||||||||
PSRAW mm,mm/m64 PSRAD mm,mm/m64 PSRAW mm,imm8 PSRAD mm,imm8 |
成组数据的算术右移: 将MMX寄存器中的字(双字)数据按MMX寄存器/内存单元指定的个数右移,移动中保持符号位. 将MMX寄存器中的字(双字)数据按8位立即数指定的个数右移,移动中保持符号位. |
|||||||||||||||||||||||||
PSRLW mm,mm/m64 PSRLD mm,mm/m64 PSRLQ mm,mm/m64 PSRLW mm,imm8 PSRLD mm,imm8 PSRLQ mm,imm8 |
成组数据的逻辑右移: 将MMX寄存器中的字(双字)数据按MMX寄存器/内存单元指定的个数右移,移出位用0填充. 将MMX寄存器中的字(双字)数据按8位立即数指定的个数右移,移出位用0填充. |
|||||||||||||||||||||||||
PSUBB mm,mm/m64 PSUBW mm,mm/m64 PSUBD mm,mm/m64 |
环绕方式成组数据相减: 从MMX寄存器中按字节(字,双字)减去MMX寄存器/内存单元中的字节(字,双字)组.(注1) |
|||||||||||||||||||||||||
PSUBSB mm,mm/m64 |
饱和方式有符号成组数据相减: 从MMX寄存器中的有符号成组字节(字)组数据减去MMX寄存器/内存单元中的有符号字节(字)组数据.(注1) |
|||||||||||||||||||||||||
PSUBUSB mm,mm/m64 PSUBUSW mm,mm/m64 |
饱和方式有符号成组数据相减: 从MMX寄存器中的无符号成组字节(字)组数据减去MMX寄存器/内存单元中的无符号字节(字)组数据.(注1) |
|||||||||||||||||||||||||
PUNPCKHBW mm,mm/m64 PUNPCKHWD mm,mm/m64 PUNPCKHDQ mm,mm/m64 |
高位成组数据分解: 此指令交替取出源操作数和目标操作数的数据元素的高半部分,写入目标操作数中,数据元素的低半部分被忽略. eg:PUNPCKHBW mm,mm/m64 |
|||||||||||||||||||||||||
PUNPCKLBW mm,mm/m64 PUNPCKLWD mm,mm/m64 PUNPCKLDQ mm,mm/m64 |
低位成组数据分解: 此指令交替取出源操作数和目标操作数的数据元素的低半部分,写入目标操作数中,数据元素的高半部分被忽略.(参考上一条) |
|||||||||||||||||||||||||
PXOR mm,mm/m64 |
逐位逻辑异或: 将MMX寄存器/内存单元中的64位数据进行异或操作,结果存于MMX寄存器中. |
Intel体系MMX指令指令说明相关推荐
- Intel CPU的CPUID指令(转载)
Intel CPU的CPUID指令 Intel有一个超过100页的文档,专门介绍cpuid这条指令,可见这条指令涉及内容的丰富. 记得去年的时候,曾经有个"英布之剑"问过我这条指令 ...
- 突破硬件瓶颈(一):Intel体系架构的发展与瓶颈挖掘
软件定义存储SDS正在从容量型向性能型演进,千万级IOPS和微秒级低延迟,非常具有挑战性.3节点标准x86服务器,能否有可能实现1000万IOPS与200us低延迟?这个可以有.硬件性能并不是瓶颈所在 ...
- 计算机指令长度是固定的,第四次作业 指令系统 设计算机A有60条指令,指令操作码6位固定长度...
第四次作业 指令系统 设计算机A有60条指令,指令操作码6位固定长度 第四次作业: 指令系统 1, 设计算机A有60条指令,指令操作码6位固定长度编码,从000000到111011.其后 继产品B需要 ...
- 计算机指令长度是固定的,第四次作业 指令系统 设计算机A有60条指令,指令操作码6位固定长...
第四次作业 指令系统 设计算机A有60条指令,指令操作码6位固定长 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 3.9 积分 第四次作业 指令系统 ...
- 【Optimizaition/x86】Intel CPU的CPUID指令获取的C实现
Date: 2018.7.22 1.参考: https://www.cnblogs.com/DxSoft/articles/5053954.html https://blog.csdn.net/lis ...
- Intel CPU的CPUID指令
Intel有一个超过100页的文档,专门介绍cpuid这条指令,可见这条指令涉及内容的丰富. 记得去年的时候,曾经有个"英布之剑"问过我这条指令,当时并没有给出一个满意的回答,现在 ...
- Intel x86_64使用cpuid指令获取CPU信息
文章目录 前言 一.cpuid指令简介 1.1 cpuid指令功能 1.2 cpuid指令代码 二.获取处理器信息 2.1 输入参数为0H 2.2 输入参数为01H 2.3 输入参数为0x800000 ...
- smashing the stack for fun and profit 译文
smashing the stack for fun and profit 译文 原文:Smashing The Stack For Fun And Profit 日期:2000.12.20 作者:A ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(1) - 概述 传输指令
MMX™ Instructions IA-32架构引入了4个指令集扩展,使得IA-32处理器可以执行单指令多数据SIMD操作.这些扩展包括MMX技术,SSE扩展,SSE2扩展,SSE3扩展. MMX指 ...
最新文章
- 《数据科学家养成手册》第九章信息论
- [转]#pragma once和#pragma comment
- oracle ssl发送邮件,使用javax.mail发送带有ssl的电子邮件
- 将图片序列转化为视频文件
- java定义基础变量语句_java语言基础-变量
- 如何让你的碎片化时间更有价值?
- 对话MathWorks:解读MATLAB技术生态圈与未来趋势
- android app应用签名生成工具,android应用签名详细步骤
- TensorFlow开发者会峰会:支持Swift,更好的支持JavaScript
- java实现单向循环链表_java实现的带头单向循环链表
- Unity 在windows10上资源默认下载的路径
- Minecraft MOD 开发记录
- python生成文件夹以及压缩文件夹
- 11个基于vue的UI框架
- 7z格式、LZMA压缩算法和7-Zip详细介绍
- python利用datetime库实现通过身份证号码判断年龄、男女,并输出生日
- Windows Postman中文版
- 打开vi编辑器出现E325: ATTENTION错误的原因和解决办法
- tophat2安装和问题解决
- Obsidian 插件(二):Advanced_Slides 的使用