将四字移动到 xmm

Posted

技术标签:

【中文标题】将四字移动到 xmm【英文标题】:Moving quadwords to xmm 【发布时间】:2013-09-03 23:26:22 【问题描述】:

我只想知道用于将带有数字的 64 位寄存器移动到 xmm 寄存器的代码。我的想法是:

`movsd xmm1, [r14]`

但我不断收到segmentation fault: 11

我在 Mac OS-X 上使用 NASM x86。

请有人帮忙。

【问题讨论】:

你不是说movsd xmm1, r14吗? 我刚刚尝试过,但仍然遇到分段错误。 【参考方案1】:

movsd xmm1, [r14] 尝试从r14 中存储的地址 加载双精度。那不是你想要的。相反,使用:

movq xmm1, r14

【讨论】:

我仍然遇到分段错误 @GolfinGamer:该指令不能出现段错误,因为没有内存访问。要么您输入错误,要么您的错误在其他地方。注意是r14不是 [r14] 我让段错误停止,但我的程序仍然无法运行。我认为 r14 的值没有得到正确的值。但感谢您的帮助。这是我需要的正确代码行 我实际上仍然无法从 r14 获取号码。我已经对其进行了测试,发现 r14 确实有然后编号,但是当我在使用这行代码后检查它是否在 xmm1 中时,它不在 xmm1 中。我做错了什么?

以上是关于将四字移动到 xmm的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个打包的 64 位四字加载到 128 位 xmm 寄存器中

为啥将 32 位寄存器移动到堆栈然后从堆栈移动到 xmm 寄存器?

如何将浮点常量值移动到 xmm 寄存器中?

将单个浮点数移动到 xmm 寄存器

如何将浮点常量值移动到xmm寄存器中?

如何在 xmm 寄存器中旋转压缩四字?