在x64程序集中添加值

Joh*_*ing 2 64-bit x86 assembly x86-64

如果仅对32个低位进行操作,ADD EAX和EBX是否会将EAX的32个高位置零?

那ADD RAX,EBX又如何呢?可能吗?如果是的话,是否保留了RAX的32个高阶位?

Ste*_*non 5

ADD EAX, EBXRAX的高32位清零。 ADD RAX, EBX不是有效的指令。

听起来您想将中的32位值添加EBX到中的64位值中RAX。为此,请先进行零扩展(MOV EBX, EBX)或符号扩展(MOVSX RBX, EBX),然后添加RBXRAX。(如果将值解释EBX为无符号,则使用零扩展,如果将其解释为有符号,则使用零扩展)。