誰能跟我講一下進棧為什麼要SP減2出棧為什麼是SP

2021-08-14 23:02:24 字數 1066 閱讀 6110

1樓:匿名使用者

堆疊的兩條操作指令push(進棧)、pop(出棧),其指令格式為:

push opd

pop opd

其中opd是16位的運算元,可以是暫存器或儲存器運算元而記憶體空間(包括棧空間)是以位元組(8位)為單位進行儲存的,所以無論進棧或出棧,都要使用棧空間的兩個位元組。即在做進棧時,其棧指標(sp)要sp-2,出棧時,sp要sp+2

2樓:匿名使用者

8086cpu中,棧操作都是16位的,例如:push ax

我們不可以寫成push al或push ah。

記憶體單元最小單位是位元組,一個位元組就佔記憶體的一個小格,2位元組也就是16位就佔記憶體的二個小格,所以進棧減2 出棧+2。

3樓:匿名使用者

這是8086/8088對堆疊操作的規定,它規定堆疊必須以字(也就是16位)為單位,即不管進棧還是出棧,運算元都是16位的,而一個儲存單元只有8位,所以一次堆疊操作,是對兩個儲存單元進行的;另外,8086/8088的堆疊是向下生長型的,即進棧時堆疊指標sp遞減,出棧時sp遞增,sp始終指向最後一個進入堆疊的資訊所在的單元,所以對於8086/8088來說,進棧sp-2,出棧p+2

4樓:匿名使用者

這是儲存當前的pc值,其實這是是pc+1的指,就是下一條指令位置.

這樣在函式呼叫返回時,可以回到該位置....

回補充:

其中37是堆疊位置,當加入了pc值後,棧頂自然就會變了..

stack: 37 ...

38:39 pc

你這個問題是微控制器51的吧,51的pc暫存器是兩個位元組的,所以需要加2...

彙編中 棧被定義後是個空棧,壓入一個數後,sp-2,為什麼不是sp-1?

5樓:匿名使用者

sp是位元組型單元,一個地址是8位,push 壓入的數是16位,是int型,所以sp-2。而不是sp-1

6樓:

你圖上的一個格子是一個位元組? push的都是一個字,即2個位元組,那麼sp要減2

誰能說一下人生經歷,誰能簡單跟我說下什麼是人生觀 價值觀和世界觀?

生下來是窮人,現在還是窮人,以後還是窮人。生在川學在鄂居在蘇。原來是男孩現在是男人。現在還活著將來會死去。這就是我的經歷。從六年級開始,一 抄直到我現在外出打工,都是我一個人在家度過,父母都在外面打工,雖然每年能見很多次面,但是很多時候都是自己一個人生活。一個人真的很孤獨,生活中太多的坎坷與失敗,總...

誰能解釋一下為什麼叫夕象,誰能解釋一下什麼叫驚喜?

分開講吧,夕是日落之時,應該象徵開完八門後雖然能獲得最後的光輝 力量 但之後必然是隕落,或者說是 隕落前最後的光輝,而且讓人聯想到紅色,和八門時候的紅色也有對應。象 既是力量的象徵,同時凱的攻擊出現的空氣炮外形是象蹄。從其中一張凱在揮拳的情景看來,象蹄前的象爪就是凱握拳時指根那裡凸出的骨頭。實在不知...

誰能幫我看一下這個是什麼草懂中醫的進謝謝

小薊,俗名刺兒菜,是一種草藥,也是一種野菜。有涼血 止血 祛瘀的功效。請問有沒有懂中醫的人幫我看一下這兩個處方是指什麼的 謝謝了哈 主治宮寒不孕,可能兼有痛經 手腳冷 貧血等症 溫經散寒,活血化瘀,氣血雙補。請懂中醫的人進來幫我看一下這個方子是 什麼的,開的怎麼樣?謝謝啦 益氣健脾,疏肝理氣,補血安...