打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
最近研读深入理解计算机系统之函数调用前参数压栈
我通过别写C语言函数测试如下:
 例如
int proc(void)
{

        int  a=1;
        int b=2;
        int sum = add(a,b);
       return sum;
}
汇编代码中:编译器通过调整%esp栈指针,为proc函数的的所有局部变量(static 变量除外)以及其他(还未搞清楚)预留出足够的空间。局部变量的压栈操作顺序最先压sum,其次b,最后a;然后是函数参数先压b,其次压a。最后开始调用add函数(call add),call指令会自动将返回地址压入堆栈,函数返回一般通过eax将返回值给调用者函数。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
C语言初学者编程规范—函数与过程
C语言过程(函数)的机器级表示
关于ARM的C语言优化
关于多线程中的可重入函数问题
C语言程序设计案例式教程-第6章 函数
3、C++中函数返回引用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服