Можно ли всегда использовать «mov eax, 0x1» вместо «mov rax, 0x1»?

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

6
задан Peter Cordes 20 May 2016 в 06:29
поделиться