【发布时间】:2014-09-07 19:17:31
【问题描述】:
您好,我无法打印出 xmm 寄存器中的所有值。我相信我正在使用 SSE 和 AVX 我对组装还是很陌生
所以用户输入了 4 个数字,我将它们移动到 YMM14 寄存器中:
vmovupd ymm14, [rsp]
所以现在 ymm14 中有 4 个数字。接下来,我尝试使用
将它们移动到 xmm0 和 xmm1vextractf128 xmm1, ymm14, 1
vextractf128 xmm0, ymm14, 0
所以现在每个都有两个数字。现在,当我尝试使用
打印出来时mov rdi, devicePower
mov qword rax, 4
call printf
顺便说一句,这是 devicePower
devicePower db "Power (watts): %.18lf %.18lf %.18lf %.18lf", 10, 0
仅打印出低值。所以如果我输入 1 2 3 4。只有 2 和 4 被打印出来。我使用了调试,1 & 2 在同一个寄存器中,3 & 4 也在正确的寄存器中,但只有 2 & 4 被打印出来
我错过了什么是因为我无法打印 1 和 3。任何帮助将不胜感激。
【问题讨论】:
-
您需要说明您使用的是 Windows 还是 Linux,因为调用约定各不相同。