1.5函数的调用机制

       哪怕是高级语言编写的程序,函数调用处理也是通过把程序计数器的值设定成函数的存储地址来实现的。不过,这和条件分支、循环的机制有所不同,因此单纯的跳转指令无法实现函数调用。函数的调用需要在完成函数内部的处理后,处理流程在返回函数调用点(函数调用指令的下一个地址)。

      图1-7是给变量a和b分别带入123和456,将其赋值给参数(parameter)来调用MyFunc函数的C语言程序。图中的地址是将C语言编译成机器语言后运行时的地址。由于1行C语言程序在编译后通常会变成多行的机器语言,所以图中的地址是离散的。

 

 

 

         在编译高级编程语言的程序后,函数调用的处理会转换成call指令,函数结束的处理则会换成return指令。这样一来,程序的运行也就变的非常流畅。

posted @ 2023-02-08 19:54  原魏薯片  阅读(20)  评论(0编辑  收藏  举报