函数调用
这里定义了一个空函数function(),然后在主函数里调用了这个空函数function(),这里需要修
改一下编译器的选项,在对语言的优化处理中把对内联函数展开的选项修改为“只使用
__inline”,如图2.3.1.1,
许多程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,这就是程序中的函数(也被称为过程)。其实程序中的函数和数学中所说的函数是很相似的,都是通过输入自变量(有些函数可能不需要自变量),然后经过一系列的运算,最后得出函数的值。
在汇编语言中对于函数的调用一般用一个call指令来完成,当过程返回时用retn指令来完成。call指令有一个操作数,指向被调用过程的地址,当程序需要调用一个过程的时候,程序会跳转到被调用过程的地址处去执行代码。当过程代码执行完毕的时候,程序需要返回到原调用地址处,这个时候就需要使用到retn指令。retn指令是没有操作数的,那么程序怎么知道函数要返回的原调用处的地址?显然,在调用一个过程的时候应该保存返回的原调用处的地址,具体怎么操作,先看一段C语言代码:
#include <stdio.h>
void function()
{
return;
}
int main()
{
function();
return 0;
}
这里定义了一个空函数function(),然后在主函数里调用了这个空函数function(),这里需要修
改一下编译器的选项,在对语言的优化处理中把对内联函数展开的选项修改为“只使用
__inline”,如图2.3.1.1,
否则编译器会把代码比较少