堆棧與ESP(棧指針寄存器)


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向上還沒有存儲數據。這部分數據是空的會被后面將會執行的程序使用。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM