八、栈的操作、栈空间
生活随笔
收集整理的這篇文章主要介紹了
八、栈的操作、栈空间
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
注:棧是進行字操作的,非字節。1個字等于兩個字節,比如ax一個字分ah和al兩個字節。
?
?先進后出,后進先出
?
棧指令?
棧規則先進后出的圖像未過程簡易圖入棧 push:寄存器 例如:push ax //將ax數據放入棧中 push:段寄存器 例如:push es //將es數據放入棧中 push:[偏移地址] 例如:push [0002] //將偏移地址0002數據放入棧中出棧 pop:寄存器 例如:pop ax //將棧數據取出放入ax pop:段寄存器 例如:pop es //將棧數據取出放入段寄存器es pop:[偏移地址] 例如:pop [0002] //將棧數據取出放入偏移地址為0002的寄存器中長例: mov ax,1122 mov bx, 3344 mov cx, 5566 push ax push bx push cx pop ax pop bx pop cx結果: 寄存器內容數據交換棧頂單元地址
棧段地址:棧偏移地址 ss:sp //遵守大端在下小端在上,每次放入棧會向上偏移兩個字棧空間范圍
(段地址)ss:0000 ~ ss:FFFF棧頂地址環繞
CLI 中斷標志(IF)置零
當棧滿時,再次進棧操作將使sp(偏移地址)環繞。
當棧空時,再次出棧操作將使sp環繞。
出棧加2,進棧減2。
棧覆蓋
當棧段與數據段、代碼段相同時,小心棧覆蓋。
總結
以上是生活随笔為你收集整理的八、栈的操作、栈空间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 守护进程创建原理及简易方法
- 下一篇: 21. PE结构-PE各个结构的基本概念