码迷,mamicode.com
首页 > 其他好文 > 详细

堆栈与ESP(栈指针寄存器)

时间:2020-07-05 17:30:17      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:程序   执行   进程   png   自己   部分   lazy   mamicode   窗口   

1.什么是堆栈?

每个应用程序都有自己的一个4GB的内存。

  1. 一块内存,操作系统在进程启动的时候已经分配好的,供程序执行时使用
  2. 和数据结构的堆栈无关
  3. 查看堆栈

2.如何查看应用程序的堆栈

(1)

  技术图片

 

 

 (2)在内存窗口搜索FS对应的内存地址并查看

  技术图片

 

 

 

可以看到当前应用程序被分配的内存即为堆栈

  开始地址为:005F 0000

  结束地址为:005E C000

(3)查看堆栈窗口末尾:005E FFFC 加4个字节即为  005F 0000

  技术图片

这里为什么要加4个字节:

  因为005E FFFC的地址是放的是开始的地址,所以向后4个字节也包含在分配的内存中

(4)查看堆栈窗口顶部:005E C000

  技术图片

 需要注意的是,堆栈的使用是从大地址向小地址使用。

(3)ESP栈指针寄存器

ESP用来记录当前的堆栈用到哪里了

技术图片

 

右击ESP点击Flkow in stack (在堆栈中跟随)即可查看

这个位置表明:从最底下(005F 0000)到(005E FE84)这个位置中间的数据已经被之前执行过的程序占用了。

且可以看到:从005E FE84向上还没有存储数据。这部分数据是空的会被后面将会执行的程序使用。

  技术图片

 

堆栈与ESP(栈指针寄存器)

标签:程序   执行   进程   png   自己   部分   lazy   mamicode   窗口   

原文地址:https://www.cnblogs.com/codexlx/p/13246537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!