标签: x86 assembly
假设我们在RAX中有一些价值。我们希望不是RAX的低32位,而是保持高32位不变。这样做有什么好办法吗?
命令如:
not eax
不幸的是零延伸。
我可以这样做:
mov rbx,rax not ebx ; or not rbx and rax, 0xffffffff00000000 or rax, rbx
但感觉应该有更好的方式。
答案 0 :(得分:6)
你可以用0x00000000ffffffff对它进行异或,这会翻转底部的32位。
0x00000000ffffffff