美文网首页Visual Studio Code
Vscode汇编调试出栈入栈—Apple的学习笔记

Vscode汇编调试出栈入栈—Apple的学习笔记

作者: applecai | 来源:发表于2019-03-24 21:13 被阅读0次

调试方法:主要看esp(当前栈指针)和ebp(栈基地址),没进入一个函数ebp会变动为当前函数的基地址。

我是在win10用的vscode+MinGw环境。

1.地址显示从小到大。从上到下(小->大),左到右(小->大)

2. 进入中断后ebp地址中的内容保存的是上一个ebp的地址。栈是向低地址方向增长的,分布保存局部变量。进入中断前先保存入参和返回地址。

3. 实例分析:

  Main->CalMin1->MyPrint。从main开始有2层调用关系。

4. memory内容如下:

当进入CalMin1的时候esp地址为0x61fed8,ebp为ed8(ed8保存的内容是进入中断前的old ebp 0x61ff18)。

进入MyPrint时候的ebp为0x61fea8(此地址中的内容为进入MyPrint前的old ebp0x61fed8)

同理可以分析从main进入CalMin1函数的情况。参数是0x10和0x20,返回地址是0x401465。

CalMin1的汇编,可以看到从MyPrint返回地址为0x4015de。

相关文章

  • Vscode汇编调试出栈入栈—Apple的学习笔记

    调试方法:主要看esp(当前栈指针)和ebp(栈基地址),没进入一个函数ebp会变动为当前函数的基地址。 我是在w...

  • 汇编学习-入栈和出栈

    栈有两个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一个元素。栈顶的元素总是最后入栈...

  • C语言10- C语言与汇编

    20:C语言与汇编 20.1:调用约定之汇编 x86调用约定: cdecl:参数从右往左依次入栈,调用者栈平衡(C...

  • 递归累加数组

    入栈 5入栈 4入栈 3入栈 2入栈 1出栈 [1 0]出栈 [2 1 0]出栈 [3 2 1 0]出栈 [4 3...

  • 汇编学习笔记 - 栈平衡 (8086)

    用ss来存取参数 当然由于现在强大的硬件支持,如果参数个数小于8个很少能看见用ss来存取参数,xcode都是直接用...

  • 汇编 - 栈

    栈 栈:是一种具有特殊的访问方式的存储空间(后进先出, Last In Out Firt,LIFO) 8086会将...

  • 汇编(八)

    现场保护 平栈内:外平栈.png *现场保护 函数调用 xcode函数汇编

  • 链栈的操作

    链栈的定义 链栈的操作 初始化 判断栈空 入栈 出栈

  • 一些常见的算法题目

    合法的出栈序列 已知1至n的数字序列,按顺序入栈,每个数字入栈后即可出栈,也可在栈中停留,返回等待后面的数字入栈出...

  • 栈-N946-验证栈序列

    题目 概述:给定一个入栈序列和出栈序列,判断如果以入栈序列的顺序入栈,所给定的出栈序列的顺序是否是合理的 输入:入...

网友评论

    本文标题:Vscode汇编调试出栈入栈—Apple的学习笔记

    本文链接:https://www.haomeiwen.com/subject/kjspvqtx.html