При сборке этого кода с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 байтов?