执行retn、call、leave指令的时候,esp和eip的变化情况
windows 32位汇编的环境下
0A10FF61 call 0A11FFAA
0A10FF66 MOV EAX,DWORD PTR SS:[EBP+3C]
- call
esp = esp - 4
[esp] = 0A10FF66 //将返回地址压入栈中eip = 0A11FFAA //跳转到函数地址
2. retn
eip = [esp]
esp = esp - 4 //将esp中的数据出栈到eip中
3. leave
mov esp,ebp
pop ebp //还原函数栈