中斷和異常

      在保護模式下,中斷機制發生了很大的變化,原來的中斷向量表已經被IDT所代替,實模式下使用的BIOS中斷在保護模式下已經不能用了。聯繫調用門,中斷門和調用門的作用機理其實是一樣的,只不過使用調用門時使用call指令,而這裏我們使用int 指令。

      中斷,又處理其外部的事件引起,比如外設請求,軟件通過執行int指令等。異常,則通常是在處理器執行指令的過程中檢測到錯誤引起的。中斷和異常不可以簡單的按照硬件或者軟件,引起他們的源進行劃分,可以理解爲,中段和異常沒有嚴格的界限。

 

又硬件自動實現的中斷響應和異常處理的步驟:

中斷向量好——>IDT中取得對應的門描述符——>從描述符中分離出選擇子——>選擇子指向處理程序在GDT或LDT中的描述符——>從GDT或LDT描述符中分離出由選擇子和偏移組成的處理程序地址——>指向處理程序

 

      如果中斷向量號所指示的門描述符是任務門描述符,那摩控制轉移到一個作爲獨立的任務方式出現的處理程序。對中斷的響應和異常的處理,80386允許通過使用中斷門或者陷阱門實現由當前任務之內的一個過程進行處理;也允許通過使用任務門實現由另一個任務進行處理。

      中斷返回指令IRET用於從中斷或者異常處理程序的返回。指令的執行根據任務嵌套標誌NT是否爲1,分兩種情況:1、NT爲1,表示是嵌套任務的返回,當前TSS中的鏈接字段保存由前一任務的TSS的選擇子,取出該選擇子,進行任務切換就完成了返回;2、NT爲0,表示當前任務內的返回,這種情形在通過中斷門或者陷阱門轉入的中斷或異常處理程序返回時出現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章