При сборке этого кода с nasm:
BITS 64
mov eax, 0x1
mov rax, 0x1
Я получаю этот вывод:
b8 01 00 00 00 b8 01 00 00 00
который является кодом операции для mov eax, 0x1, повторяется дважды.
Означает ли это, что mov rax, 0x1 может всегда заменяться на mov eax, 0x1 или это просто в этом случае?
Если это правильно, было бы лучше использовать, чем:
xor rax, rax
inc rax
поскольку при сборке становится 6 байтов, а mov eax, 0x1 - всего 5 байтов?