2

ADD EAX、EBXは、32の下位ビットを操作するだけの場合、EAXの上位32ビットをゼロにしますか?

そして、ADD RAX、EBXはどうですか?出来ますか?もしそうなら、RAXの上位32ビットは保持されますか?

4

2 に答える 2

5

ADD EAX, EBXRAXの上位32ビットをゼロにします。 ADD RAX, EBXは有効な命令ではありません。

EBXの64ビット値に32ビット値を追加したいようですRAX。これを行うには、最初にゼロ拡張(MOV EBX, EBX)または符号拡張(MOVSX RBX, EBX)を実行してから、に追加RBXRAXます。(値を符号なしとして解釈する場合はゼロ拡張を使用し、署名されている場合EBXは符号拡張を使用します)。

于 2013-02-11T15:55:54.943 に答える
3

はい、32ビットは上位ビットをADDゼロにします。ADD RAX, EBX不可能である。上位32ビットをゼロにして(たとえばMOV EBX, EBX)を使用してから使用できますADD RAX, RBX(これにより、の上位32ビットが変更される可能性があることに注意してくださいRAX

于 2013-02-11T15:59:15.937 に答える