Допустим, я хочу установить два 32-битных регистра EAX
как младшее 32-битное слово и EDX
как старшее 32-битное слово в RAX
.
Я нашел один способ:
shl rdx, 32
or rax, rdx
Этот метод работает только в том случае, если мы уверены, что биты с 32 по 61 из RAX
равны 0. Если мы не уверены в этом, то сначала мы должны очистить высокий 32 битовое слово, например:
mov eax, eax //This instruction should clear the high 32 bit word of RAX
Это кратчайший путь?
Есть ли одна инструкция asm x86-64, которая выполняет эту операцию?