棧(stack)用途廣泛,通常用于存儲局部變量、傳遞函數參數,儲存函數傳回位址等。
調試程式需要不斷檢視棧記憶體,這是很有必要的。
棧是一種資料結構,按照後進先出的原則存儲資料。
棧的特征:

一個程序中,棧頂指針(ESP)初始狀态指向棧頂端。
執行PUSH指令将資料壓入棧的時候,棧頂指針就會上移到棧頂端。
執行POP指令從棧中彈出資料時,若棧為空,那麼棧頂指針重新移動到棧底端。
換言之,棧時一種高位址向低位址擴充的資料結構。
棧操作執行個體:
此時棧頂指針ESP指向19FF7C
執行完PUSH指令:
棧頂指針ESP減少了4,指向了12FF78位址
繼續執行POP指令:
執行完發現ESP增加了4個位元組,棧又變成了初始狀态。
總結一下規律:
向棧内壓入資料時,棧頂指針減小,向低位址移動。
從棧内彈出資料時,棧頂指針增加,向高位址移動。
後進先出。