Advertisement

C与汇编:调用子程序

阅读量:

研究目的:了解汇编如何实现C语言中的函数调用

编译器:TDM-GCC 4.9.2 64位版本,采用Release模式进行构建

反汇编工具:Dev-C++ 5.11版本


C语言代码:

此函数执行了对一个基础加法函数add的调用,该add函数的功能是接收两个输入参数,将其数值进行相加运算,并最终输出二者相加后的结果。

主函数设计与实现

1、2行:rbp的主要功能是标识基地址,在函数执行期间该值保持恒定,因此可以通过基地址与偏移量的组合方式访问栈中的数据。rsp的作用是指示当前栈所占用的空间范围。main函数本质上也是被调用者,即在程序执行的第一行代码运行之前,当前rsp与rbp之间的区域存储的是调用方的数据,这部分内容需要进行保护。保护的方式是将调用函数的rbp值压入栈中,以便后续恢复现场。随后让rbp指向rsp的位置,从而为新的栈空间做准备。教材中提

全部评论 (0)

还没有任何评论哟~