What is the difference between the two lines
push eax
mov [esp], eax
Doesn't push eax on to the stack (where esp is pointing to just as mov [esp], eax does?)
「プッシュ」は、「esp」(スタック ポインター) の値を自動的に増やします。「mov」はしません。したがって、スタックに複数のアイテムを置きたい場合はpush
、次のようにします。
push eax
push ebx
...
を使用mov
すると、同じ結果を得るには、次のようになります。
sub esp,4
mov [esp], eax
sub esp,4
mov [esp], ebx
...
そして、良い点push
は、逆の操作があることです。pop
これにより、逆の順序で元に戻すことができます。もちろん、これがスタックのすべてです。:)