簡體   English   中英

如何將兩個32位寄存器移入一個64位?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM