<二>从指令角度了解函数堆栈调用过程
代码
#include <iostream>
using namespace std;
int sum(int a,int b){
int temp=0;
temp= a +b;
return temp;
}
int main(){
int a =10;
int b=20;
int ret =sum(a,b);
return 0;
}
以上代码需要了解的2个问题:
问题1:main函数调用sum,sum执行完成以后,怎么知道回到哪个函数中?
问题2:sum函数执行完后,回到main后,怎么知道从哪一行指令继续执行的?
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------
此时 esp ,ebp 又指向了main函数的栈底指针和栈顶指针
//------------------------------------------------------------------------------------------------------------------