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_深入理解函数调用堆栈

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

相关文章:

  • 2021-12-19
  • 2021-09-27
  • 2022-12-23
  • 2021-11-28
猜你喜欢
  • 2021-09-16
  • 2021-07-20
  • 2022-01-07
  • 2021-12-15
相关资源
相似解决方案