如何将 1 或 2 添加到寄存器 xmm0 (双)?
1
2
xmm0
我可以这样做,但肯定必须有一个更简单的方法:
movsd xmm0, [ecx] xor eax, eax inc eax cvtsi2sd xmm1, eax addsd xmm0, xmm1 movsd [ecx], xmm0
还可以使用浮点x87指令执行此操作吗?
这对我不起作用:
fld dword ptr [ecx] fld1 faddp fstp dword 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 .
double
qwords
dwords
1 回答
您可以在内存或其他寄存器中保持常量:
和
要么
如果您使用的是x64,则可以执行以下操作:
如果类型不匹配困扰你,请使用堆栈:
至于x87代码,
double
s是qwords
,而不是dwords
.