网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月28日
漏签
0
天
汇编吧
关注:
45,341
贴子:
164,001
看贴
图片
吧主推荐
游戏
3
回复贴,共
1
页
<<返回汇编吧
>0< 加载中...
ret和ret 04 有什么区别???
只看楼主
收藏
回复
meinv753
基础知识
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
push eax
call func
ccc:
...
func:
....
...
ret 04
比如以上这个例子 为啥最后写ret和ret 04 都能正确运行呢?
ZandraWoo
数据结构
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
ZandraWoo
数据结构
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
至于为什么楼主以为两种写法都能正常运行?
这有两个可能.
1.程式简单,没有太多层层叠叠的调用,比如func后就结束程式,没有机会出岔.
2.栈针保护机制.
先看这子程序代码
PUSH BP
MOV BP,SP
...
...
...
...
MOV SP,BP
POP BP
RET
这是个标准参数传递和局部变量的子程序框架,中间代码里,BP会保持不变,然后不管SP如何改变,返回前取回SP原值(MOV SP,BP),栈针平衡.
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示