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.PE,EFLAGS.CF 报告结果 |
ucomiss ucomisd | 对俩个标量浮点数无序比较,使用EFLAGS.ZF,EFLAGS.PE,EFLAGS.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寄存器,那么高位的四字不受影响 |
x86-SSE指令集
最新推荐文章于 2024-03-17 17:47:15 发布
本文详细探讨了x86架构下的SSE(Streaming SIMD Extensions)指令集,揭示了其在浮点运算和多媒体处理上的优势。通过实例解析,展示了SSE如何提升处理器在科学计算、图像处理和编码解码等领域的性能。了解SSE对于优化CPU效率和编写高效代码至关重要。
摘要由CSDN通过智能技术生成