[英]Assembly: division using the values in two 32-bit registers as if they were one 64-bit integer
[英]How to move two 32 bit registers in to one 64 bit?
假設我想將兩個32位寄存器EAX
作為低32位字,將EDX
作為高32位字放入RAX
。 我找到了一種方法:
shl rdx, 32
or rax, rdx
只有當我們確定RAX
32到61位為0時,此方法才有效。如果我們不確定,那么我們必須首先清除高32位字,如:
mov eax, eax //This instruction should clear the high 32 bit word of RAX
這是最短路嗎?
是否有一個asm x86-64指令執行此操作?
也許這有點好一點:
shl rax,32
shrd rax,rdx,32
不假設高雙字為零。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.