x86-64将long转换为double

时间:2014-09-14 06:10:31

标签: assembly x86-64 simd avx

我无法弄清楚如何将长演类型转换为双精度。我正在尝试读取长整数并在AVX寄存器的计算中使用它。但是,我无法弄清楚如何将long int转换为在AVX寄存器中使用的双精度浮点数。

如何获取long int并将其转换为双精度浮点数?

1 个答案:

答案 0 :(得分:4)

如果您只使用1-100之间的值,则4字节int足够大:

; double x = (double)n
cvtsi2sd    xmm0,dword ptr [n]
movsd       mmword ptr [x],xmm0