1樓:匿名使用者
pop指令bai本身並不會造成cs和ip跳到du別的地方,它只zhi是單純地起到dao
將ss:sp所指的內記憶體內容送入你指定容的目的地址並同時修改sp的值的作用。你的程式會跳到別處,是因為你在其它地方使用堆疊的時候,比如子程式中最後的ret,由於你堆疊資料關係錯位,導致返回時沒有能獲得當初你call時壓入堆疊的正確的返回地址,而將別的錯誤的數當成了返回地址的原因。
一般說來,使用堆疊時,必須由程式設計者自己考慮好堆疊裡的資料是如何使用的,要通過程式指令的運用,保證你彈出的是你需要的那個數,而不是別的數。這就要求在使用堆疊時應當push進一個就對應pop出棧一個(我稱它為平衡操作),且必須是先進的數後出。建議你在分析程式執行時自己畫一個堆疊中資料內容的示意圖進行分析,搞清楚指令執行過程中每個時刻當前的棧頂在**,棧裡有哪些資料,它們如何變化,這樣就不容易亂了。
組合語言中的棧,壓棧,出棧是什麼意思
2樓:匿名使用者
就像一個裝乒乓球的盒子,只有一個口能開啟
裡面一個球不放,就是空棧
往裡面放一個球,就是壓棧
從裡邊拿一個球,就是出棧
都放滿了,就是滿棧,再放就會溢位
3樓:匿名使用者
棧就是分配的一些連續的記憶體空間 注意是連續的壓棧就是把一個資料放到棧中的頂部,然後依次往上疊,就和疊一堆書一樣出棧就是把棧頂部的資料拿出來,就像是把一疊書的最上面的一本拿出來一樣
4樓:匿名使用者
說的通俗點,就是一個資料的儲存與讀取。棧是個儲存器,壓棧就是往裡面存資料,出棧就是取資料
組合語言中入棧出棧問題 20
5樓:做而論道
我們申請一個空棧,然後把ax,b....
--你是怎麼申請的呀?
-----------------
你既然,申請了一個空棧,
你就應該知道,棧底,在什麼地方。
也就知道,棧底,的地址,存在什麼地方。
那麼你說說看,你把棧底的地址,存在什麼地方了?
然後,你又把ax,bx 的內容,存在什麼地方了?
這個事情,你要是不知道,那就奇怪了!
這就又回到原來的問題:--你是怎麼申請的呀?
呵呵,你真能瞎琢磨。
6樓:匿名使用者
push ax
push bx
pop bx<- pop是 把棧裡面的數,彈出到bxpo ax<-
7樓:匿名使用者
地址在ss:sp裡.
組合語言中壓入堆疊是什麼意思
8樓:匿名使用者
就是把資料暫時存放到棧
中的意思.
例:push ax
push bx
等等,就是把ax,bx暫存器中的資料存入到棧中.
棧是一個暫時儲存資料的記憶體空間,它具有"後進先出"的特性.
補充:棧的作用是很大的.比如,可以用來傳遞引數,用來暫時存放暫存器中的資料,讓暫存器再去做別的事,在win32a**中,還是開闢區域性變數的主要空間.
9樓:風捲
壓入堆疊的作用很廣泛,可以保護原先的指標
比如push ebp
move ebp,esp
10樓:匿名使用者
打個比方:有一個瓶子,你先放裡一塊餅乾,再放一塊餅乾,這就是堆疊,出棧就是把後放的那塊餅乾拿出來....具有"後進先出"的特性.
組合語言指令大全,要詳細的 !!!!
11樓:匿名使用者
最佳答案ibm-pc組合語言指令集
資料傳送指令集
mov功能: 把源運算元送給目的運算元
12樓:蟹蟹沒有蟹黃堡
一、資料位傳送指令:
1、mov c, bit ;bit 可直接定址位 c←(bit)
2、mov bit,c ;c 進位位 (bit) ← c
二、位變數修改指令:
1、clr c ; 將c=0
2、clr bit
3、cpl c ; 將c求反再存入c
4、cpl bit ; 將bit求反再存入bit
5、setb c ; 將c=1
6、setb bit ; (bit) ← 1
三、位變數邏輯指令:
anl c, bit anl c, bit orl c, bit orl c, bit
延展閱讀:
彙編指令是組合語言中使用的一些操作符和助記符,還包括一些偽指令(如assume,end)。用於告訴彙編程式如何進行彙編的指令,它既不控制機器的操作也不被彙編成機器**,只能為彙編程式所識別並指導彙編如何進行。
通用資料傳送指令:
1、mov 傳送字或位元組;
2、movsx 先符號擴充套件,再傳送;
3、movzx 先零擴充套件,再傳送;
4、push 把字壓入堆疊;
5、pop 把字彈出堆疊;
6、pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓入堆疊;
7、popa 把di,si,bp,sp,bx,dx,cx,ax依次彈出堆疊;
8、pushad 把eax,ecx,edx,ebx,esp,ebp,esi,edi依次壓入堆疊;
9、popad 把edi,esi,ebp,esp,ebx,edx,ecx,eax依次彈出堆疊;
10、bswap 交換32位暫存器裡位元組的順序;
11、xchg 交換字或位元組( 至少有一個運算元為暫存器,段暫存器不可作為運算元);
12、cmpxchg 比較並交換運算元( 第二個運算元必須為累加器al/ax/eax );
13、xadd 先交換再累加( 結果在第一個運算元裡 );
14、xlat 位元組查錶轉換;
15、bx 指向一張 256 位元組的表的起點, al 為表的索引值 (0-255,即0-ffh);
16、返回 al 為查表結果。( [bx+al]->al )
請問數學 1006 12 10如果把()寫成「x」,那麼怎麼寫呢?敬請高手賜教好嗎謝謝
100x 6 12 10 600x 12 10 50x 10 x 0.2 100 6 12 10 100xx 10x12 6 100xx 20 x 20 100 x 0.2 請問數學 100 6 12 10 為什麼這樣計算 100 6 12 10 100 6 12 10 請問數學 100 6 12 ...
恐龍化石要捐給國家能錢給的嗎,請問如果把化石捐給國家,國家會按化石價值的百分之幾給捐獻化石的人呢?
因為在我們中華人民共和國境內土地都是國有的,所以土地以下的物質也是國家的。國家鼓勵居民上交,而且會發給證書和一定的獎勵,這個獎勵有物質的有現金的。反之沒有上交你就是犯法,如果交易得利那就是犯罪。上次新聞上看到有人捐了個戰國古劍,國家補助了500塊。請問如果把化石捐給國家,國家會按化石價值的百分之幾給...
如果把生活比作海洋,那麼語文比作什麼
把語文比作載著我們在海洋上遠航的船 找到兩句比喻句,把什麼比作什麼?語文 卜運算元 送鮑浩然之浙東 卜運算元 送鮑浩然之浙東 是北宋詞人王觀創作的詞,這首詞寫的是春末時節。上片寫友人一路山水行程,含蓄地表達了惜別深情 下片則直抒胸臆,寫離愁別緒和對友人的深情祝願。此詞送別友人,構思新穎。沒有送別情境...