SSE指令集系列之二----浮点与整数转换指令
来源:互联网 发布:的主数据 英文 编辑:程序博客网 时间:2024/06/06 07:26
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位有符号整数,放入目的寄存器.
- SSE指令集系列之二----浮点与整数转换指令
- SSE指令集系列之三----整数运算指令
- SSE指令集系列之一----数据加载与浮点运算指令
- SSE2指令集系列之二----整数运算相关指令
- SSE特殊指令集系列之二----字节绝对差值求和指令
- SSE特殊指令集系列之一----各种数据重排指令
- xmmintrin.h与SSE指令集
- xmmintrin.h与SSE指令集
- SSE指令集
- SSE指令集
- SSE指令集入门
- SSE指令集入门
- SSE指令集
- SSE指令集入门
- 关于SSE指令集
- SSE指令集简记
- SSE指令集入门
- SSE加速指令集
- 谈谈偏微分方程在图像特效中的应用
- MMX指令集系列之二----移位运算和乘法指令
- MMX指令集系列之三----数据饱和压缩与重排指令
- SSE指令集系列之一----数据加载与浮点运算指令
- SAP密码找回(包括SAP*和DDIC)----转载
- SSE指令集系列之二----浮点与整数转换指令
- SSE指令集系列之三----整数运算指令
- SSE2指令集系列之二----整数运算相关指令
- SSE特殊指令集系列之一----各种数据重排指令
- SSE3指令集系列----数据加载与算术运算指令
- SSSE3指令集----水平加法指令饱和字节乘加指令以及字节重排指令
- SSE特殊指令集系列之二----字节绝对差值求和指令
- SSE4.1指令集系列之一----多字节绝对差值求和指令、水平最小值,整数格式扩展指令
- 自动判断语言的方式