GJ.*_*GJ. 8 x86 assembly x86-64 move
假设我想将两个32位寄存器EAX作为低32位字和EDX高32位字放入RAX.我找到了一种方法:
shl rdx, 32
or rax, rdx
Run Code Online (Sandbox Code Playgroud)
只有当我们确定从32到61的位RAX为0时,此方法才有效.如果我们不确定,那么我们必须首先清除高32位字,如:
mov eax, eax //This instruction should clear the high 32 bit word of RAX
Run Code Online (Sandbox Code Playgroud)
这是最短路吗?
是否有一个asm x86-64指令执行此操作?
Jen*_*ger 12
也许这有点好一点:
shl rax,32
shrd rax,rdx,32
Run Code Online (Sandbox Code Playgroud)
不假设高双字为零.
| 归档时间: |
|
| 查看次数: |
3162 次 |
| 最近记录: |