标题:关于调用子程序用堆栈作参数时的问题
只看楼主
魔城侠客
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-147503-1-1.html




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

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