将值从 XMM0 移动到 R8 寄存器

moving value from xmm0 to r8 register

提问人:prashantjerk 提问时间:11/17/2023 更新时间:11/17/2023 访问量:32

问:

在执行完所有求和操作后,我存储了要寄存的值,但我需要在寄存器中返回该值。 接收浮点指针的地址,我需要将最终结果存储到其中。xmm0r8r8

我写了这段代码: ,但是当我调试并看到它时,这会将一些大值存储到 r8 中,我认为这是一些随机地址,但是 xmm0 寄存器清楚地表明它在代码末尾有最终结果,但最终结果似乎没有移动到 r8。movd r8, xmm0

组装 MASM

评论

1赞 Peter Cordes 11/17/2023
如果 r8 保存一个地址作为函数的输入,则希望存储到内存中。您编写的指令会修改寄存器值本身,因为您没有在寄存器值周围加上方括号。 事实上,确实将低 64 位元素从 移动到 就像您的问题标题所要求的那样,所以我不是 100% 确定您的代码真正做什么,而不是一个最小的可重现示例。(通常助记符是 ,但我认为 MASM 语法对此很奇怪,甚至用于 64 位操作数大小,而不仅仅是像 Intel 文档那样的 32 位大小。movss [r8], xmm0r8movd r8, xmm0xmm0r8movqmovdr8d
0赞 Community 11/20/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答: 暂无答案