免费如何创建网站平台,厦门市海沧区建设局网站,网站的页面风格是什么,山西省城乡住房建设厅网站1. 为什么需要bp指针#xff1f;
因为bp是栈帧的起始地址#xff0c;函数内的局部栈变量#xff0c;采用相对bp的内存寻址。不能相对于sp#xff0c;sp是一直在变的。
2. 函数调用过程#xff1f;
函数开始#xff0c;先压栈bp#xff0c;保存父函数栈底指针bp#…1. 为什么需要bp指针
因为bp是栈帧的起始地址函数内的局部栈变量采用相对bp的内存寻址。不能相对于spsp是一直在变的。
2. 函数调用过程
函数开始先压栈bp保存父函数栈底指针bp再更新bp为sp再移动sp分配局部变量内存再取参数执行。调用子函数时压栈参数调用call压栈pc。子函数重复上述步骤。
其实就是处理好
bpsppc的保存与恢复bp与sp确定一个函数栈帧。参数传递局部变量分配
这三件事。 参考
《Linux内核 完全注释》第三章C语言程序