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

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

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

量子,是什麼概念,誰能通俗的講一下

量子定義 乙個物理量如果存在最小的不可分割的基本單位,則這個物理量是量子化的,並把最小單位稱為量子。在物理學中,指乙個不可分割的基本個體。其基本概念為所有的有形性質是可量子化的,通俗地說量子是能表現出某物質或物理量特性的最小單元。通俗的來說,按物理運動規律的不同,將遵從經典運動規律 牛頓力學,電磁場...

誰能幫我分析一下,我前女友跟我講的這兩句話代表什麼呢?不愛我了

這種人早點分得了 你走她那裡得不到什麼 得到的就像她說的 讓你走男孩變成男人 別的沒有可 就是想和你好好的分手,你也不要糾纏了。沒意義,願你能找到你完美的另一半 你都說前女友了還有什麼可講的 她對你連喜歡都沒有。一開始只有心動。然後就在一起。那種感覺消失了就立馬閃人。而且屬於不吃回頭草的 朋友都不想...

為什麼ddt會一下打得遠一下打得進

這個必須要用用附加1 50 20 附加一次攻擊 50和20都是傷害 打兩下,或者 2 50 20打3下,或者用11打3下,22打5下 這個看起來最明顯 在炮彈出手的時候快速改變你的角度,這就是變角打發,你要是能練好了對你在遊戲中實戰很有幫助的。那一定是你變角了,像打啵咕運動會普通的時候第一關最好用變...