Допустим, я хочу поместить два 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, которая выполняет эту операцию?