首页
社区
课程
招聘
[旧帖] 请教leave是什么指令,功能如何?谢谢! 0.00雪花
发表于: 2007-3-24 16:55 8108

[旧帖] 请教leave是什么指令,功能如何?谢谢! 0.00雪花

2007-3-24 16:55
8108
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
LEAVE - Restore Stack for Procedure Exit (80188+)
        Usage:  LEAVE
        Modifies flags: None
        Releases the local variables created by the previous ENTER
        instruction by restoring SP and BP to their condition before
        the procedure stack frame was initialized.
                                 Clocks                 Size
        Operands         808x  286   386   486          Bytes
        none              -     5     4     5             1

        C9 LEAVE Set SP to BP, then pop BP
        C9 LEAVE Set ESP to EBP, then pop EBP

查MASM的opcodes手册

在罗云彬的某文章里有提到过
Enter 和 Leave,Enter 语句的作用就是 push ebp/mov ebp,esp/sub esp,xxx,这个 xxx 就是 Enter 的,Leave 则完成 add esp,xxx/pop ebp 的功能
2007-3-24 17:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢楼上,我也已查到leave所做的操作相当于mov esp,ebp 然后pop eip。
2007-3-24 17:22
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
最初由 qiandm 发布
谢谢楼上,我也已查到leave所做的操作相当于mov esp,ebp 然后pop eip。

LEAVE Set ESP to EBP, then pop EBP

.............
2007-3-24 17:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
虽然不懂,也帮你顶顶
2007-3-24 20:05
0
游客
登录 | 注册 方可回帖
返回
//