x86-SSE指令集

本文详细探讨了x86架构下的SSE(Streaming SIMD Extensions)指令集,揭示了其在浮点运算和多媒体处理上的优势。通过实例解析,展示了SSE如何提升处理器在科学计算、图像处理和编码解码等领域的性能。了解SSE对于优化CPU效率和编写高效代码至关重要。
摘要由CSDN通过智能技术生成
SSE 指令集
(1)SSE 标量浮点数据传输指令
movss movsd 在俩个xmm指令金阊区之间或者内存位置和xmm寄存器之间复制标量浮点数
(2)SSE 标量浮点算术运算指令
addss addsd 对指定操作数做标量加法
subss subsd 对指定操作数做标量的减法,源操作数指定减数,目标操作数指定被减数
mulss mulsd 对指定操作数做标量乘法
divss divsd 对指定操作数做标量除法,源操作数指定除数,目标操作数指定被除数
sqrtss sqrtsd 计算指定源操作数的平方根
maxss maxsd 比较源操作数和目标操作数,并把较大的值保存到目标操作数
minss minsd 比较源操作数和目标操作数,并把较小的值保存到目标操作数
roundss roundsd 使用立即操作数指定舍入方法对标量浮点数做舍入
rcpss 计算指定操作数的近似倒数
rsqrtss 计算指定操作数的近似倒数的平方根
(3)SSE 标量浮点比较
cmpss smpsd 比较俩个标量浮点值,使用立即数指定操作数指定比较操作符。比较的结果被保存到目标操作数(所有1表示真,所有0表示假)
comiss comisd 对俩个标量浮点数有序比较,使用EFLAGS.ZF,EFLAGS.PEEFLAGS.CF 报告结果
ucomiss ucomisd 对俩个标量浮点数无序比较,使用EFLAGS.ZF,EFLAGS.PEEFLAGS.CF 报告结果
(3)SSE 标量浮点转换
cvtsi2ss cvtsi2sd 把带符号双字整数转换为浮点型,源操作数可以是内存位置或者通用寄存器,目标操作数必须是XMM寄存器
cvtss2si cvtsd2si 把浮点数转换为双字整数,源操作数可以是内存位置或者XMM寄存器目标操作数必须是通用寄存器
cvttss2si cvttsd2si 使用截断方法把浮点数转为双字整数,源操作数可以是内存位置或者XMM寄存器,目标操作数必须是通用寄存器
cvtss2sd 把SPFP值转换为DPFP值,源操作数可以是内存位置或者XMM寄存器,目标操作数必须是XMM寄存器
cvtsd2ss 把DPFP值转换为SPFP值,源操作数可以是内存位置或者XMM寄存器,目标操作数必须是XMM寄存器
(4)SSE 组合浮点型数据传输指令
movaps movapd 在俩个XMM寄存器之间或者内存单元和XMM寄存器之间复制组合SPFP/DPFP值
movups movupd 在俩个XMM寄存器之间或者非对齐内存单元和XMM寄存器之间复制组合SPFP/DPFP值
movlps movlpd 把一个组合SPFP/DPFP值的低位四字从内存复制到XMM寄存器,反之亦可。如果目标是XMM寄存器,那么高位的四字不受影响
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值