腾讯微群加入QQ群

 找回密码
 加入我们

!connect_header_login!

!connect_header_login_tip!

搜索
查看: 791|回复: 0

C语言活动记录

[复制链接]
发表于 2016-8-23 15:03:35 | 显示全部楼层 |阅读模式
    活动记录,就是在程序执行的过程中函数调用时栈上的内容变化。一个函数被调用,反映在栈上的与之相关的内容被称为一帧,其中包含了参数、返回地址、老ebp值、局部变量以及esp和ebp。
    C语言默认的调用规约为cdecl,参数从右往左依次入栈,之后是函数的返回地址入栈,接着是老ebp入栈。

    ESP是栈顶指针,EBP就基指针寄存器,用它可以存取栈中的数据,向上(栈底方向)可以获取返回地址、参数值, 向下(栈顶方向)可以获取函数局部变量值。

    一般而言,SS:[ebp+1]处为返回地址;SS:[ebp+8]处为第一个参数值,SS:[ebp+0Ch]为第二个参数值;SS:[ebp-4]为第一个局部变量,SS:[ebp]处为上一层ebp值,ebp和函数返回值是32位,所以点4字节。

 


结合反汇编的实例,可参考:http://www.cnblogs.com/shitouer/archive/2010/04/05/1704554.html

0
0

转自:http://blog.csdn.net/zhuliting/article/details/6839233?locationNum=4
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|手机版|Archiver|小黑屋|一起疯|苦咖啡 ( 新ICP备12000197号  

GMT+8, 2018-4-24 07:19 , Processed in 0.043002 second(s), 12 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表