ADD EAX、EBXは、32の下位ビットを操作するだけの場合、EAXの上位32ビットをゼロにしますか?
そして、ADD RAX、EBXはどうですか?出来ますか?もしそうなら、RAXの上位32ビットは保持されますか?
ADD EAX, EBX
RAXの上位32ビットをゼロにします。 ADD RAX, EBX
は有効な命令ではありません。
EBX
の64ビット値に32ビット値を追加したいようですRAX
。これを行うには、最初にゼロ拡張(MOV EBX, EBX
)または符号拡張(MOVSX RBX, EBX
)を実行してから、に追加RBX
しRAX
ます。(値を符号なしとして解釈する場合はゼロ拡張を使用し、署名されている場合EBX
は符号拡張を使用します)。
はい、32ビットは上位ビットをADD
ゼロにします。ADD RAX, EBX
不可能である。上位32ビットをゼロにして(たとえばMOV EBX, EBX
)を使用してから使用できますADD RAX, RBX
(これにより、の上位32ビットが変更される可能性があることに注意してくださいRAX
)