CALL指令中關於IP進棧的問題

2022-07-08 16:34:29 字數 615 閱讀 6324

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 ...