有特權級變換的轉移——堆疊的切換
在沒有特權級變換的情況下,程式的轉移中的一些引數和返回地址都是push進同一個堆疊,這種情況比較簡單。而如果轉移伴隨著特權級變換,那麼我們就會涉及到兩個堆疊,外層堆疊(呼叫者堆疊)和內層堆疊(被呼叫者堆疊)。(特權級變化的時候,堆疊也要發生變化,這個是處理器的機制,其作用是為了避免高特權級的過程由於棧空間不足而崩潰。)
在沒有特權級變換的情況下,程式的轉移中的一些引數和返回地址都是push進同一個堆疊,這種情況比較簡單。而如果轉移伴隨著特權級變換,那麼我們就會涉及到兩個堆疊,外層堆疊(呼叫者堆疊)和內層堆疊(被呼叫者堆疊)。(特權級變化的時候,堆疊也要發生變化,這個是處理器的機制,其作用是為了避免高特權級的過程由於棧空間不足而崩潰。)