В 64-разрядном процессоре x86 обычно загружается номер -1 для регистрации, например:
mov rdx, -1 // 48BAFFFFFFFFFFFFFFFF
... этот код операции занимает 10 байтов.
Другой способ:
xor rdx, rdx // 4831D2
dec rdx // 48FFCA
... этот код операции принимает только 6 байтов.
ИЗМЕНИТЬ
Как говорит Jens Björnhager (я тестировал) xor edx, edx
opcode должен очистить весь регистр rdx:
xor edx, edx // 31D2
dec rdx // 48FFCA
... этот код операции занимает всего 5 байтов.
EDIT:
Алекс найдет другое решение:
mov rdx, -1 // 48C7C2FFFFFFFF
... этот код операции занимает всего 7 байтов. Но как сообщить компилятору использовать более короткий код операции (без использования БД)?
...
Что быстрее и что более экономично?