leave指令的作用是将当前栈帧的基址指针EBP恢复到栈顶ESP的值,同时弹出当前栈帧,回到上一个栈帧。它的效果相当于执行以下两条指令:

movl %ebp, %esp popl %ebp

其中,第一条指令将栈顶指针ESP设置为当前栈帧的基址指针EBP的值,相当于回收当前栈帧的空间;第二条指令将EBP的值设置为上一个栈帧的基址指针,相当于恢复上一个栈帧的状态。这样就可以返回到调用该函数的代码处,继续执行下一条指令。

test2pushl ebpmovl esp ebpsubl $24 espmovl $0 -4ebpmovl 8ebp eaxmovl eax edximull 12ebp edxmovl ua eaxcmpl eax edxjle L4movl ua eaxleal 10eax edxmovl ua eaxmovl edx 4espmovl eax espcall test1movl ua e

原文地址: http://www.cveoy.top/t/topic/g0Uc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录