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