文档章节

SSE指令集系列之一

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:46
字数 678
阅读 17
收藏 0
点赞 0
评论 0

SSE有8个128位独立寄存器(XMM1~XMM7),指令描述约定:
     MM指64位MMX寄存器
     XMM指128XMM寄存器

     m32 指32位内存变量
     m128指128位内存变量

 

1. 数据传送指令

    movaps XMM,XMM/m128 movaps XMM/m128,XMM

     把源存储器内容值送入目的寄存器,当有m128时, 内存地址必须是16字节对齐的

     movups XMM,XMM/m128  movaps XMM/m128,XMM

    与 movaps 执行的结果相同,但内存地址可以不是16字节对齐的,速度没有 movaps 的快!

 

  movlps XMM, m64

  把源存储器64位内容送入目的寄存器低64位,高64位不变,内存地址不必16字节对齐.

  movhps XMM, m64

  把源存储器64位内容送入目的寄存器高64位,低64位不变,内存地址不必16字节对齐.

  movhlps XMM,XMM

  把源寄存器高64位送入目的寄存器低64位,高64位不变.

  movlhps XMM,XMM

  把源寄存器低64位送入目的寄存器高64位,低64位不变.  

  movss    XMM, XMM/m32

      把源寄存器低32位送入目的寄存器低32位,如果源为32为内存变量,则目的寄存器其它位清零,否则保持不变.  

 

2. 单精度浮点算数运算指令

          SSE 的点算数运算指令,大致上可以分成兩种:packed 和 scalar。Packed 指令是一次对 XMM 寄存器中的四个浮点数均进行相同的运算,而 scalar 则只对 XMM寄存器中的最低  32位浮点数进行运算,高96位保持不变,如下图:

                                                    

                  addps XMM,XMM/m128

                    addss XMM,XMM/m32

                  subps XMM,XMM/m128

                  subss XMM,XMM/m32

                  mulps XMM,XMM/m128

                  mulss XMM,XMM/m32

                  divps XMM,XMM/m128

                  divss XMM,XMM/m32

                  maxps XMM,XMM/m128

                  maxss XMM,XMM/m32

                    minps XMM,XMM/m128

                  minss XMM,XMM/m32

                  rcpps XMM,XMM/m128

                  rcpss XMM,XMM/m32

                  rsqrtps XMM,XMM/m128

                  rsqrtss XMM,XMM/m32

 

       要点: 以PS后缀结尾的指令,如果源操作数为存储器,要求内存地址必须是16字节对齐的。而以SS后缀结尾的指令,没有这个限制。

 

 3. 位运算指令

   andps XMM,XMM/m128

  源存储器128个二进制位'与'目的寄存器128个二进制位,结果送入目的寄存器,内存变量地址必须16字节对齐.

  orps XMM,XMM/m128
  源存储器128个二进制位'或'目的寄存器128个二进制位,结果送入目的寄存器,内存变量地址必须16字节对齐.

  xorps XMM,XMM/m128
  源存储器128个二进制位'异或'目的寄存器128个二进制位,结果送入目的寄存器,内存变量地址必须16字节对齐

 

 

 

 

本文转载自:http://www.cnblogs.com/celerychen/archive/2013/03/27/2984085.html

共有 人打赏支持
abcijkxyz
粉丝 60
博文 6196
码字总数 1876
作品 0
深圳
项目经理
AMD发布Stream SDK v2.0 Beta开发工具

AMD最近发布了ATI Stream SDK v2.0开发工具包的最新Beta版本Stream SDK v2.0 Beta,这个版本将全面兼容OpenCL1.0编程接口界面,更令人欣喜的是,需要的用户可以自由免费地下载该开发工具包,...

红薯
2009/10/14
2.4K
0
Intel 45nm制程处理器上的SSE4指令集简介

Intel 45nm制程处理器上的SSE4指令集简介 Intel的SSE(Streaming SIMD Extensions, 流式单指令多数据扩展)技术有效增强了CPU的向量运算能力。支持该指令集的处理器有8个128位xmm寄存器,每一...

日久不生情
2017/11/07
0
0
(学习心得):进程,线程,超线程,并发,并行 等概念

前言: 此陋文来自最近对阅读《深入理解计算机系统》与《微型计算机体系结构:Intel Core Duo / i 系列微处理器技术应用》两本书的学习体会, 前者从 程序员的视角来探讨计算机系统中各部件的...

shayi
2012/11/26
5.5K
28
Flat Assembler 1.70 发布,汇编工具

Flat Assembler 是一个快速高效的80x86的汇编工具,支持DOS、Windows、Linux操作系统,支持包括 8086-80486/Pentium instructions with MMX, SSE, SSE2, SSE3, and 3DNow! extensions and x......

红薯
2012/04/19
1K
10
cpu指令集包括哪些?

如题!我知道有mmx,sse等等.可是mmx指令集是在96年才有的, 而之前386,486,586等那些呢,包含哪些指令,相关资料在哪下载? 是不是sse1包含mmx,,,,,,,sse2包含sse1,,,,,,,sse3包含sse2 我知道去英...

音乐&编程
2012/09/14
2.1K
3
如何选择纠删码编码引擎 | 纠删码技术详解(上)

作者介绍: 徐祥曦,七牛云工程师,独立开发了多套高性能纠删码/再生码编码引擎。 柳青,华中科技大学博士,研究方向为基于纠删码的分布式存储系统。 前言: 随着数据的存储呈现出集中化(以...

七仙女很忙
2017/04/13
0
0
Intel Software Development Emulator

Intel Software Development Emulator 是一款模拟Intel未来扩展指令集功能的仿真器。仿真器是基于Pin动态二进制仪器系统(和XED)。 它可以模拟在SSE4, AES,PCLMULQDQ中新的指令集功能和RTM...

叶秀兰
2013/12/08
209
0
centos 6.3 64位 mini版本u盘安装停在system_call_fadtpath

centos 6.3 64位 mini版本u盘安装停在systemcallfadtpath, 服务器是dell的powerEdge,磁盘共四个。其中两个做了raid1. 我尝试将系统换成32位的。还是不行。网络安装不行 CPU: Intel 奔腾 G3...

mickelfeng
2014/10/17
207
1
Firefox的64位修改版 - Waterfox 10

64位系统下的64位应用毫无疑问会带来更好的性能,Mozilla的Firefox虽然版本更新极快,但64位版本却始终步履蹒跚,而且它非常早期和不稳定,对于64位系统的朋友们来说用什么来提升浏览器性能呢...

红薯
2012/02/08
543
2
Flat Assembler

Flat Assembler 是一个快速高效的80x86的汇编工具,支持DOS、Windows、Linux操作系统,支持包括 8086-80486/Pentium instructions with MMX, SSE, SSE2, SSE3, and 3DNow! extensions and x......

匿名
2008/11/16
2.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

百度云iOS架构师在职场中的忠告

1.工具不能代替思考 在我多年的咨询工作和与许多组织和管理者的共事中,我发现了修复问题的共同套路,那就是管理人员相信工具可以“解决”给出的问题。当问题域被理解透彻,并且不可能有很多...

_小迷糊
21分钟前
0
0
Java基础——异常

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 异常处理: 可以挖很多个陷阱,但是不要都是一样...

凯哥学堂
34分钟前
0
0
180723-Quick-Task 动态脚本支持框架之结构设计篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构设计篇/ Quick-Task 动态脚本支持框架之结构设计篇 相关博文: 180702-QuickTask动态脚本...

小灰灰Blog
37分钟前
0
0
SBT 常用开发技巧

SBT 一直以来都是 Scala 开发者不可言说的痛,最主要的原因就是官方文档维护质量较差,没有经过系统的、循序渐进式的整理,导致初学者入门门槛较高。虽然也有其它构建工具可以选择(例如 Mill...

joymufeng
42分钟前
0
0
HBase in Practice - 性能、监控及问题解决

李钰(社区ID:Yu Li),阿里巴巴计算平台事业部高级技术专家,HBase开源社区PMC&committer。开源技术爱好者,主要关注分布式系统设计、大数据基础平台建设等领域。连续4年基于HBase/HDFS设计和...

中国HBase技术社区
43分钟前
1
0
ES18-JAVA API 批量操作

1.批量查询 Multi Get API public static void multiGet() {// 批量查询MultiGetResponse response = getClient().prepareMultiGet().add("my_person", "my_index", "1")// 查......

贾峰uk
47分钟前
0
0
SpringBoot2.0使用health

1,引入actuator <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency> 2,application.properties ......

暗中观察
54分钟前
0
0
阿里巴巴Java开发规约

###编程规约 命名风格 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。...

简心
59分钟前
0
0
如何用TypeScript来创建一个简单的Web应用

转载地址 如何用TypeScript来创建一个简单的Web应用 安装TypeScript 获取TypeScript工具的方式: 通过npm(Node.js包管理器) npm install -g typescript 构建你的第一个TypeScript文件 创建...

durban
今天
0
0
分享好友,朋友圈自定义分享链接无效

这个问题是微信6.5.6版本以后,修改了分享规则:分享的连接必须在公众号后台设定的js安全域名内

LM_Mike
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部