文档章节

SSE指令集系列之一

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:46
字数 678
阅读 22
收藏 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
粉丝 64
博文 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
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
(学习心得):进程,线程,超线程,并发,并行 等概念

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

shayi
2012/11/26
5.5K
28
cpu指令集包括哪些?

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

音乐&编程
2012/09/14
2.1K
3

没有更多内容

加载失败,请刷新页面

加载更多

sed命令

10月17日任务 9.4/9.5 sed 1.sed(上)(下) 1.sed 匹配功能 #sed -n ‘/root/’ p test.txt 将带有root的内容打印出来 同时支持 . * 还有 + 不过需要脱译,或者在前面选项加r。 支持{ } 支...

hhpuppy
33分钟前
1
0
day120-20181018-英语流利阅读-待学习

千禧一代注意了:一大波公司正向你的钱包袭来 Daniel 2018-10-18 1.今日导读 这几年,你有没有发现,不管是在微信公众号还是在抖音,有越来越多的商家和品牌开始玩起了网络用语和表情包,从卖...

飞鱼说编程
42分钟前
1
0
IOasd

能够使用FileUtils常用方法操作文件 字符流体系介绍 : 在 IO 开发中, 我们传输最频繁的数据为字符, 而以字节的方式来传输字符数据会使程序员丧失对数据内容的判断.因为程序员只认识字符, 不认...

码农屌丝
今天
0
0
创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
3
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部