分析在程序中函数调用时,堆栈和PC都是如何完成实现的,写出详细过程.谢谢了高手帮帮忙很急的

谢谢如果好还追加噢在线等阿拜托了... 谢谢如果好还追加噢
在线等阿拜托了
展开
 我来答
chenhaooo
2007-05-21 · TA获得超过439个赞
知道小有建树答主
回答量:487
采纳率:0%
帮助的人:270万
展开全部
拷贝来的。。。
函数的一般调用过程
1。指令指针中的地址加1,指向函数调用后的下一条指令。这个地址随后被放入堆栈,它将作为函数返回时的返回地址。

2。在堆栈中为你所声明的返回值类型开辟空间。如果系统的整数规定为四个字节,则当函数返回值声明为整数时,堆栈再增加四个字节,但在这四个字节中并不放入任何值。

3。被调函数的首地址装入指令指针。

4。当前的堆栈栈顶被记录下来并存入一个称为栈帧的特殊指针中,从现在开始到函数返回之前加入堆栈的任何数据都将被视为函数的局部变量。

5。函数将所有形参放入堆栈。

6。开始执行指令指针中的指令。

7。局部变量按其定义的方式压入堆栈

当函数准备返回时,返回值放入2所开辟的内存中,随后堆栈指针指向栈帧指针,从而弹出被调函数的所有局部变量。返回值被弹出堆栈并赋给函数调用本身的值,而第一步中指针接着弹出,赋给指令指针,函数继续执行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式