堆栈与ESP(栈指针寄存器)
Posted codexlx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆栈与ESP(栈指针寄存器)相关的知识,希望对你有一定的参考价值。
1.什么是堆栈?
每个应用程序都有自己的一个4GB的内存。
- 一块内存,操作系统在进程启动的时候已经分配好的,供程序执行时使用
- 和数据结构的堆栈无关
- 查看堆栈
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(栈指针寄存器)的主要内容,如果未能解决你的问题,请参考以下文章