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