前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c语言调用约定与底层汇编

c语言调用约定与底层汇编

原创
作者头像
阿婆
修改2019-07-26 10:55:18
1.9K0
修改2019-07-26 10:55:18
举报

ret:将eip的值返回到esp中

调用约定:

fastcall 前两个参数放入ecx,edx,后面参数从右往左依次入栈,被调用者栈平衡

stdcall 参数从右往左依次入栈,被调用者栈平衡

thiscall

cdecl 参数从右往左依次入栈,调用者栈平衡;add esp,xxx:栈平衡

stdcall是被调用者栈平衡,因此在func2里面add esp,栈平衡
stdcall是被调用者栈平衡,因此在func2里面add esp,栈平衡

栈是每个线程都必须拥有的空间,是一个内存

char类型和short类型参数都是以4字节入栈存储的,不够就补,但是printf中会提升到八个字节

不写调用约定默认是__cdecl调用约定 调用者:调用函数的函数

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 调用约定:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档