文档章节

SSE指令集系列之二

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:45
字数 422
阅读 19
收藏 0

4. 数据重排指令集

  unpckhps XMM,XMM/m128

  源存储器与目的寄存器高64位按双字交错排列,结果送入目的寄存器,内存变量必须对齐内存16字节.
            高64位 | 低64位
    目的寄存器:    a0 | a1 | a2 | a3
    源存储器:     b0 | b1 | b2 | b3
    目的寄存器结果:  b0 | a0 | b1 | a1
    例:
    当  XMM0 = 0x 0c517e000  44290000 46b6d000 3c4985f0
         XMM1 = 0x 045e51000 4240cccd  4a59e540  3a77b9e0,

            当执行 unpckhps XMM0,XMM1
               则 XMM0 = 0x 045e51000 c517e000 4240cccd 44290000

  unpcklps XMM,XMM/m128

  源存储器与目的寄存器低64位按双字交错排列,结果送入目的寄存器,内存变量必须对齐内存16字节.
          高64位 | 低64位
  目的寄存器:    a0 | a1  | a2 | a3
  源存储器:       b0 | b1 | b2 | b3
  目的寄存器结果:  b2 | a2 | b3 | a3
  例:
  当XMM0 = 0x 0c517e000 44290000 46b6d000 3c4985f0
     XMM1 = 0x 045e51000 4240cccd  4a59e540 3a77b9e0,

       执行 unpcklps XMM0,XMM1
   则 XMM0 = 0x 04a59e540 46b6d000 3a77b9e0 3c4985f0

 

 5. 单精度浮点数与整数相互转换指令

    cvtpi2ps XMM,MM/m64

    源存储器64位两个32位有符号(补码)整数转为两个单精度浮点数,放入目的寄存器低64中,高64位不变.

    源寄存器是'MM',不是'XMM'

 

    cvtsi2ss XMM,r32/m32

    源存储器1个32位有符号(补码)整数转为1个单精度浮点数,放入目的寄存器低32中,高96位不变.

 

  cvtps2pi MM,XMM/m64

    把源存储器低64位两个32位单精度浮点数转为两个32位有符号整数,放入目的寄存器.

 

    cvtss2si r32,XMM/m32

    把源存储器低32位1个单精度浮点数转为1个32位有符号整数,放入目的寄存器.

 

 

 

 

 

 

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

abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问
Intel 45nm制程处理器上的SSE4指令集简介

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

日久不生情
2017/11/07
0
0
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
/proc/cpuinfo文件分析(查看CPU信息)

  在Linux系统中,提供了proc文件系统显示系统的软硬件信息。如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到。本文章针对该文件进行简单的总结。   基于不...

zhiqiangw
2016/11/18
33
0
Intel Software Development Emulator

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

叶秀兰
2013/12/08
209
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

没有更多内容

加载失败,请刷新页面

加载更多

mysql免安装版,服务无法启动没有抱任何错误

1.解压 2.新建my.ini [mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, e......

榴莲黑芝麻糊
27分钟前
0
0
Qt编写安防视频监控系统3-通道交换

一、前言 最开始写通道交换的功能的时候,走了很多弯路,比如最开始用最初级的办法,触发交换的时候,先关闭视频,然后设置新的url重新打开视频,这样处理非常低级而且耗内存还卡还很慢,毕竟...

飞扬青云
28分钟前
0
0
如何远程调试部署在CloudFoundry平台上的nodejs应用

网络上关于如何本地调试nodejs应用的教程已经很多了,工具有Chrome开发者工具,Visual Studio Code,和nodejs周边的一些小工具等等。 在实际情况中,我们可能遇到本地运行良好,但是部署到C...

JerryWang_SAP
49分钟前
5
0
微信扫码访问网站调用默认浏览器打开如何实现?

我们在微信内分享链接或二维码的时候,我们会发现我们的网站是可以在浏览器里正常打开的,但就是不能在微信里打开,提示 “ 已停止访问该网页 ”,无论是聊天框也一样。说是系统检测到您的网...

明尼苏达哈士奇
57分钟前
3
0
一份Java程序员进阶架构师的秘籍,你离架构师还差多远

一、如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并...

我最喜欢三大框架
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部