如果仅对32个低位进行操作,ADD EAX和EBX是否会将EAX的32个高位置零?
那ADD RAX,EBX又如何呢?可能吗?如果是的话,是否保留了RAX的32个高阶位?
最佳答案
ADD EAX, EBX
将RAX的高32位清零。 ADD RAX, EBX
不是有效的指令。
听起来您想将EBX
中的32位值添加到RAX
中的64位值。为此,首先将零扩展(MOV EBX, EBX
)或符号扩展(MOVSX RBX, EBX
),然后将RBX
添加到RAX
。 (如果要将EBX
中的值解释为无符号,则使用零扩展,如果将其签名,则使用零扩展)。
关于assembly - 在x64程序集中添加值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14815736/