日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三章--堆栈段的工作方式

發(fā)布時(shí)間:2025/6/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三章--堆栈段的工作方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
堆棧段在實(shí)模式和保護(hù)模式下的工作方式相同,下面我們只介紹在實(shí)模式下的工作方式:
其中SS 堆棧段寄存器,用來存儲(chǔ)堆棧段的初始地址;SP 堆棧指針寄存器,用來存儲(chǔ)堆棧段的棧頂偏移量。
堆棧段初始化的工作如下:

?

SS定位到堆棧段的起始地址(基地址,低地址),棧底位于堆棧段的有效地址的最末端(高地址)。SP初始化為堆棧段的大小,SS:SP永遠(yuǎn)指向堆棧的棧頂。在初始化時(shí),SS:SP指向堆棧段的最高地址(此時(shí),棧底和棧頂都指向這一內(nèi)存地址)。隨著壓入元素,SP不斷變小,進(jìn)而SS:SP代表的棧頂?shù)刂纷冃?#xff0c;不在等于棧底地址,而是逐漸靠近堆棧段的起始地址,當(dāng)SP為0時(shí),SS:SP代表的棧頂?shù)刂放cSS:0000代表的堆棧段的起始地址相等,進(jìn)而確定棧滿,CPU也是通過判斷SP <0來檢驗(yàn)堆棧是否溢出的。

使用該堆棧段,執(zhí)行下面一段代碼:
mov ax,1234H
push ax

從這里我們可以更清楚的看出來,SS指向的是堆棧段的起始地址,SS:SP指向的是棧頂,棧底為高地址。

為了更清楚的理解堆棧段的工作方式,現(xiàn)在我們來看下面的題目:
如果一個(gè)堆棧從地址3250H:0000H開始,它的最后一個(gè)字的偏移地址為0100H,SP的內(nèi)容為0052H,問:
1 棧頂?shù)刂肥鞘裁?
2 棧底地址是什么?
3 存入數(shù)據(jù)1234H和5678H后,SP的內(nèi)容是多少?

答案:
1 堆棧的最高地址叫棧底,堆棧指示器SP總是指向棧頂。
棧頂?shù)刂?#61;(SS) × 10H + (SP)=3250H × 10H + 0052H=32552H
2 棧底地址=(SS) × 10H + 0100H = 32600H
3 8086CPU中堆棧存取必須以字為單位。存入數(shù)據(jù)1234H和5678H后,即兩個(gè)字壓入堆棧后,SP減4,SP的內(nèi)容為:(SP) - 字?jǐn)?shù) × 2=0052H - 2 × 2=004EH。SS的內(nèi)容不變。


總結(jié)

以上是生活随笔為你收集整理的第三章--堆栈段的工作方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。