为方便表述,这里描述的背景是函数P调用函数Q
1)传递控制。P调用Q,程序计数器必须指向Q函数的第一行指令,Q函数执行完毕返回时,要把程序计数器设置为P调用Q后面那条指令的地址;
2)传递数据,P能够把若干参数传递给Q函数,Q函数能够向P返回一个值;
3)分配和释放内存,在开始时,Q可能需要为局部变量分配空间,在返回前,又必须释放这些空间。
C语言
点击(此处)折叠或打开
- int son(int a, int b)
- {
- int c = 0;
- c = a + 2*b; //son函数执行一个相加操作
- return c;
- }
- int main(int a)
- {
- int i = 1, j = 0;
- j = son(a,i);
- return j;
- }
汇编(由objdump实现:objdump -S call)