
相当于mov esp,ebp
pop ebp
ret 8 是返回的时候再d出8字节
你这样问表示是懂这些的我也不过多解释了
问题出来 函数的调用约定上
参数由子程序平衡的调用约定就会出现这种情况
leave 指令使用来平衡函数(子程序?)的局部变量的
ret 8 这8个字节是用来平衡 函数的参数的
典型的使用此类调用约定的调用约定是_stdcall(标准调用约定,Windows 中的WINAPI调用方式也属于此方式)
由于这种调用方式 对参数的清理是由子程序完成的,故用了leave 只有有ret 8 也就很好理解了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)