Tyi*_*ilo 6 assembly x86-64 nasm zero-extension
组装此代码时nasm:
BITS 64
mov eax, 0x1
mov rax, 0x1
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
b8 01 00 00 00 b8 01 00 00 00
Run Code Online (Sandbox Code Playgroud)
这是mov eax, 0x1重复两次的操作码.
这是否意味着mov rax, 0x1可以随时被替换mov eax, 0x1,或只是在这种情况下?
如果这是正确的,那么使用它不是更好:
xor rax, rax
inc rax
Run Code Online (Sandbox Code Playgroud)
因为组装时变为6个字节,而mov eax, 0x1只有5个字节?