4.4.1 过程调用语句的汇编指令表示
汇编语言中的调用指令CALL和返回指令REL 是用于过程调用的主要指令,它们都属于无条件转移指令,都会改变程序执行的顺序。为了支持嵌套和递归调用,通常利用栈来返回地址、入口参数和过程内部定义的非静态局部变量,因此,CALL 指令在跳转到被调用过程执行之前先要把返回址压栈,RET 指令在返回调用过程之前要从栈中取出返回地址。
下面以一个简单的例子来说明过程调用的机器级实现。假定有一个过程add实现两个数相加,另一个过程caller调用add以计算125+80的值,对应的C语言程序如下:

经gcc编译后caller过程对应的代码如下:

