1樓:
sh”指令的功能是實現將一個暫存器中的資料壓入棧操作。push的操作過程是: (sp)(sp)-2,((sp))<-oprd。
先修改堆疊指標sp(壓入時為自動減2),然後,將指定的運算元送入新的棧頂位置。
彙編裡的"pop"指令的功能是實現將一個暫存器中的資料彈出棧操作。pop的操作過程是:將堆疊段中當前ss:
sp所指的字內容彈出到某個暫存器或段暫存器或記憶體單元。再 sp←sp+2。
2樓:匿名使用者
進出棧,棧是filo(first in last out),先進後出也就是把暫存器裡的資料臨時儲存一下,相當與一個倉庫不是你說的那樣子
假設eax=4,ebx=5
push eax
push ebx
pop eax
pop ebx
結果eax=5 ebx=4(體現了先進後出)
3樓:雍朔
push和pop是堆疊操作指令,push [reg]/[num] 是將reg暫存器中的值或是數字num壓入堆疊中,而pop [reg]是將堆疊棧頂的值彈出到reg暫存器中,並將這個值從堆疊中刪去.
堆疊可以看成是一個陣列,但只能在棧頂(可以認為是陣列的一端)對資料進行操作,起臨時儲存資料的作用,32位彙編中,ss:esp指向堆疊棧頂,16位則是ss:sp.
4樓:鯤鵬展翅
堆疊是一端固定,另一端變化的特殊儲存空間,你可以把它想像成裝固體的桶,桶底(棧底)固定,桶裡面所裝固體的最高處定義為桶頂(棧頂)。如果什麼都沒有裝時,桶頂和桶底相等,當裝一層沙子後,桶頂升高(即棧頂地址-2,相當於入棧push),再裝一層水泥,桶頂再次升高,(即棧頂地址又-2),當你往出倒東西的時候,你先倒出最上層的水泥,桶頂下降(即棧頂地址+2,相當出棧pop),然後你才能倒出沙子。所以堆疊是先進來的先出去。
c語言,pop函式和push函式的作用分別是什麼?請詳細一點,謝謝。我是初學者~
5樓:匿名使用者
pop函式 出棧 ;push函式 進棧。
相當於有一個箱子,push函式是把東西放進去;而pop函式則相反,是把東西從那箱子裡拿出來。
6樓:一棵麵包樹
這個算是資料結構的內容講解的是一個叫做棧型別的資料結構,這個資料結構的特點就是後進先出--最後放進去的資料最先拿出來。pop函式就是拿出資料的操作,push是放入是資料的操作。
內容拓展:
pop函式呵push函式的使用:
#include
#include
#include
void *clean(void *arg)void * thr_fn1(void * arg)pthread_cleanup_pop(0);
pthread_cleanup_pop(0);
return (void *)1;
}//輸出結果: chread 1 start ->thread 1 push complte
//push和pop框起來的**,不管正常退出還是異常退出,都將執行清除函式,但是存在特例:不包括return 退出。
彙編中進棧出棧(push,pop)有什麼作用,有點糊塗,請高手點撥,最好詳細一點,謝謝!
7樓:陽光上的橋
堆疊有用來暫時儲存資料、與子程式通訊兩個功能。
功能一、暫時儲存資料
比如要呼叫某子程式,不希望子程式破壞暫存器bx,那麼可以這樣push bx
call proc***
pop bx
功能二、用來和傳遞引數給子程式
8樓:連玉枝錢卿
並不是這樣,和你理解的恰恰相反
,將暫存器的值進行壓棧是為了保護在暫存器中的值。比方說程式在計算所得結果分別放在暫存器a和b中,這時程式呼叫子程式,子程式在編寫過程中用到了a和b兩個暫存器,如果直接呼叫子程式那麼a和b中原有的計算值會被覆蓋同時影響了程式和子程式的運算結果,這時需要一個地方用來儲存原程式的結果就用到了棧
彙編裡的PUSH壓棧使用他是為了進行什麼步驟而使用的呢
push和poppush相當於是寄存東西pop相當於把他取出來你要去商店買東西,暫時把手上的東西寄存了等買完了再把他拿出來是一個道理 不丟失資料進行壓入 push 棧保護,出棧 pop 恢復原資料。例如共用累加器a,進棧前壓入保護,累加器可在進行運算,出棧恢復原累加器中的數值。結果不會影響原數值。 ...
VB裡Const的用法和意義是什么
const 語句 宣告用於代替文字量的常數。語法 public private const constname as type expression const 語句的語法包含下面部分 部分 描述 public 可選的。該關鍵字用於在模組級別中宣告在所有模組中對所有過程都可以使用的常數。在過程中不能...
暹羅之戀裡演tong和mew的男主角叫什麼名字
mario maurer 飾演tong pchy 飾演mew mario maurer mario maurer 飾演tong 在片中飾演陽光少年tong的mario maurer 馬里奧 毛瑞爾 是一位泰國籍中德混血兒,爸爸roland是德國人,媽媽warunya是泰籍中國人。mario出生於19...