10_02_深入理解函数调用堆栈

1. 堆栈相关的寄存器

  • esp, 堆栈指针(stack pointer)
  • ebp, 基址指针(base pointer)

2. 堆栈操作

  • push,栈顶地址减少4个字节(32位)
  • pop, 栈顶地址增加4个字节(32位)

3. ebp在C语言中用作记录当前函数调用基址

  • cs:eip,总是指向下一条的指令地址
    • 顺序执行,总是指向地址连续的下一条指令
    • 跳转/分支,执行这样的指令的时候,cs:eip的值会根据程序需要被修改
    • call,将当前cs:eip的值压入栈顶,cs:eip指向被调用函数的入口地址
    • ret,从栈顶弹出原来保存在这里的cs:eip的值,放入cs:eip中

4. 调用函数框架

在这里插入图片描述

学习视频链接:10_02_深入理解函数调用堆栈

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值