| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1229 人关注过本帖
标题:关于调用子程序用堆栈作参数时的问题
只看楼主 加入收藏
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
结帖率:50%
收藏
 问题点数:0 回复次数:5 
关于调用子程序用堆栈作参数时的问题
在调用子程序前堆栈中已经有数据,在调用子程序后,堆栈的顶端是否保存了返回的地址????
如果在子程序里子程序再调用自己,那这时堆栈顶端的返回地址是否有变化???
觉在堆栈这里子程序的调用有点迷惑,希望高手来解决
搜索更多相关主题的帖子: 子程序 堆栈 里子 顶端 地址 
2007-06-14 17:51
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

堆栈段只要不益处,可以一直存放数据或地址什么的


2007-06-14 19:30
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
调用子程序的时候 当子程序执行完后 程序会自动返回
堆栈就是用来保存一些数据的 如ax在主程序里有一个值 但是在子程序里要用到ax
这样就先把ax入栈 等子程序运行完后 在弹出ax原来的值

   好好活着,因为我们会死很久!!!
2007-06-14 20:40
hkbyest
Rank: 1
等 级:新手上路
威 望:2
帖 子:30
专家分:0
注 册:2007-6-14
收藏
得分:0 
关于这个问题,一般做法是在子程序里push ebp  mov ebp,esp然后用ebp来定位参数。即call proc前参数入栈,然后是返回地址入栈,这时ebp+2 +4 +6 +8等就是参数位置。
2007-06-14 22:12
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 
嗯,现在知道了,是在堆栈里直接取数据用,而不用pop的

West and east,home is best……
2007-06-17 10:51
雨竹
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-14
收藏
得分:0 
为什么我什么都不懂?
2007-06-20 10:10
快速回复:关于调用子程序用堆栈作参数时的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016290 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved