Assembly 汇编-将xmm寄存器加载到32寄存器
我的结果是xmm0。它是一个32位浮点数。我正在尝试将其加载到32位寄存器edxAssembly 汇编-将xmm寄存器加载到32寄存器,assembly,masm,sse,Assembly,Masm,Sse,我的结果是xmm0。它是一个32位浮点数。我正在尝试将其加载到32位寄存器edx movss dword ptr [result], xmm0 mov eax, dword ptr [result] 我在eax有一个奇怪的数字。。。我以为这是一个地址,但这不是因为我试图看看地址后面是什么 我的第二个想法是: movd eax, xmm0 但是它给了我和第一个一样的结果。 有人知道如何将浮点数从xmm寄存器正确加载到32位寄存器吗?如果要将结果从单精度浮点转换为整数,请使用 cvtss2si
movss dword ptr [result], xmm0
mov eax, dword ptr [result]
我在eax有一个奇怪的数字。。。我以为这是一个地址,但这不是因为我试图看看地址后面是什么
我的第二个想法是:
movd eax, xmm0
但是它给了我和第一个一样的结果。
有人知道如何将浮点数从xmm寄存器正确加载到32位寄存器吗?如果要将结果从单精度浮点转换为整数,请使用
cvtss2si r32, xmm
还有其他转换指令,例如,将4个压缩浮点转换为4个压缩32位整数:
cvtps2dq xmm, xmm
《英特尔intrinsics指南》可以方便地按函数进行搜索,当然,《英特尔insn ref指南》有所有内容的详细信息,索引中有摘要。链接到这些,以及其他重要的阅读资料,如Agner Fog的指南,在。你到底期望什么-比如,一个四舍五入的结果,或者解释为整数的文字浮点位?我期望eax中的结果带有尾数和指数,所以文字浮点位解释为整数,这正是你得到的结果。如果您认为有错误,请提供更多信息,例如
xmm0
和eax
的实际内容。