2

私はMASMで働いています。

64 ビット変数があり、レジスタからの 32 ビット入力を 64 ビット変数の下半分に格納する必要があります。

まず、下半分のアドレスをレジスタに移動します。

mov ebx, OFFSET num1+32

次に、PTR命令を使用して、32 ビット入力を変数の後半に格納します。

mov DWORD PTR [ebx], eax

ただし、2 行目が実行されるたびに、「.data」で宣言された文字列の 1 つがメモリに上書きされます。それは次のとおりです。

45 6e 74 65 72 20 46 69 72 73 74 20 48 61 6c 66 20 6f 66 20

45 6e 74 65 72 20 46 69 bb bb bb bb 48 61 6c 66 20 6f 66 20

変更点はbb bb bb bb上図の通りです。

これbb bb bb bbは、上記の 2 行が実行される前に、64 ビット変数に格納されるように入力したものです。

アドバイスをいただければ幸いです。ありがとう

4

1 に答える 1