ida入门(2)

 A、桟帧    stack  frame

1、要先保护现场

2、将参数按照调用约定,存放在被运行桟帧上, 这样, 这个桟帧的帧顶指针就会发生改变

3、若有必要,调用函数会配置一个帧指针,保存调用方希望保持不变的内容(寄存器值)

4、被调用函数为它可能需要的任何局部变分配空间,需要桟帧栈顶向上(-操作)开辟

5、被调用函数返回值存放在eax寄存器中,或者存放在可以立即被调用到的地方

6、一旦函数完成其他操作,任何局部变量都释放了

7、调用地方,如果重新获得控制权,删除在桟开辟的空间(+操作)




B、调用约定

C语言调用约定: _cdecl(参数从右想做依次入栈),清理方式,调用者清理

    参数入栈原因:对于参数是可变化的,比如函数:printf(“xxxx”), 调用者肯定知道传入被调用者 printf函数的参数,但是,对于函数printf函数本身是不知道调用者传入的参具体是什么。

比如:函数

void demo(int x, int y, int z)

参数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值