gpt4 book ai didi

assembly - 将常量值添加到 x86 中的 xmm 寄存器

转载 作者:行者123 更新时间:2023-12-01 09:02:39 25 4
gpt4 key购买 nike

我将如何添加 12到注册 xmm0 (双倍的)?

我可以这样做,但肯定必须有一个更简单的方法:

movsd xmm0, [ecx]

异或 eax, eax
公司
cvtsi2sd xmm1, eax
添加 xmm0, xmm1

movsd [ecx], xmm0

也可以用浮点 x87 指令做到这一点吗?

这对我不起作用:

fld dword ptr [ecx]
1
faddp
fstp 双字 ptr [ecx]

最佳答案

您可以在内存或另一个寄存器中保持一个常量:

_1      dq      1.0


addsd   xmm1,[_1]

或者
movsd   xmm0,[_1]
addsd xmm1,xmm0

如果您使用的是 x64,则可以执行以下操作:
mov     rax,1.0
movq xmm0,rax
addsd xmm1,xmm0

或者如果类型不匹配困扰您,请使用堆栈:
mov     rax,1.0
push rax
movsd xmm0,[rsp]
pop rax
addsd xmm1,xmm0

至于x87代码, double s 是 qwords , 不是 dwords .

关于assembly - 将常量值添加到 x86 中的 xmm 寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com