2
如何將1
或2
添加到寄存器xmm0
(double)?在x86中向xmm寄存器添加恆定值
我能做到這樣,但肯定必須有一個更簡單的方法:
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]
'movsd xmm0,[esp]'或'movsd xmm0,[rsp]'? –
好點,可能意味着rsp,因爲我們正在談論x64。 –
無論如何,使用堆棧的建議是非常糟糕的,並且不會避免令人驚訝地使用'double'常量作爲'mov r64,imm64'的操作數。如果你想避免這種情況,建議'mov eax,1' /'cvtsi2sd xmm0,eax' –