|
2015/05/04(Mon) 19:56:28 編集(投稿者)
■No75805 (ぽん吉 さん) に返信 > PUSH EAX > MOV DWORD PTR DS:[E9DCD1],EAX > > push eaxにメモリアドレスが格納されていて、 > E9DCD1にpush eaxのアドレスを書き出していて、
このペアで見ると、何か間違っているように思えます。
1.push eax は eax レジスタの中身をスタックに積むことです。 2.mov 命令は右側に書かれたものを、左側に書かれたものに移動(代入)することです。
この時点で書かれたアセンブラコードと説明が一致しません。 ("push eax" ではなく、"eax" と読み替えれば通じなくもないか…)
> そのpush eaxに格納されているメモリアドレスの中身を > ベツのアドレスに書き込むにはどうすればいいでしょうか?
"push eax" は命令であり、格納されている領域を表す文言ではありません。 何をやりたいのでしょうか?
// 元のアセンブラを見る限り、eax を退避して、eax の中身を E9DCD1 に書いている? // eax をアドレスと見なしたときの扱いをしたいなら mov ebx, [eax] みたいな感じかな?試していませんが。
|