1樓:匿名使用者
在執行call指令時,ip的值先變成call指令後的第一個位元組的偏移地址,然後才被壓入棧。這種說法是正確的。
遠呼叫call far是先壓入cs,然後再壓入ip近呼叫call只壓入ip
樓上的同學錯了,他說的是呼叫中斷的情況,call不儲存標誌暫存器的。
2樓:蜜蜂小玉米
call指令步驟:
你的例程為call far
先壓flag,然後cs,然後ip
ip為下一條指令的起始地址
如0000:0200 call far 0000:0300 9a 00 03 00 00
0000:0205 inc bx 43則執行後棧內容
(自底向頂)
flag cs ip
(3202) (0000) (0200)
3樓:樹清稱思楠
ss:sp指向的堆疊,ss為堆疊段,sp為堆疊指標。(保護模式下)如果是保護模式,
就只是sp的位置。
操作如下:將sp指向的記憶體位置向低地址移動二個記憶體單元,然後把ip的值放進去,
即先移動sp,再放值進去
元素的進棧次序為A,B,C,D,E,則退棧中不可能的序列是
棧的進出規則是先進後出,所以根據這個規則可以看出c是錯誤的因為就算a是第一個進棧的,而e是最後一個進棧的,要是e是第一個出棧的話,那麼a肯定是最後一個出棧,因為他前面還有b,c,d c棧是限定只能在表bai的一端進行du插入和刪除的線性表zhi元素依次進棧 daoa b c d e 並不是 內說讓所...
有元素以6,5,4,3,2,1的順序進棧,問哪個不是合法
選5.是以從大到小的隨機順序入棧,雖然順序不可控,但是從大到小所以5肯定在6後面入棧,遵循後進先出原則,所以5不可能在6之後出棧,所以一眼看出c是不合法的。沒有規定要一次性進完所有的元素 對於a 先進入6 5,再出5,再進4,再出4,再進3 再出3,再出6 再進入2,1,再出1,2 c 先進入6 5...
關於資料結構進棧和出棧的問題望賜教(就剩20分了,您別嫌少)
和 這種操作符!放在變數的前面為 如i 1 等式 i 2 4 是先計算這個值,再執行等式的!而 i 2 3 是先計算等式,之後再計算i的值,等式計算後i的值才是 2 進棧 s elem s top 程式內部會這樣分為兩步執行 s elem s top s top s top 1 出棧 s elem ...