DOS内核学习 - DOS专用中断
? ? INT 22H、23H、24H的相同點是:在一可執行程序被EXEC功能加載過程中,在創建對應的程序段前綴控制塊PSP時,這3個向量分別送入PSP的偏移0AH-0DH、0EH-11H、12H-15H處保存。當正在執行的程序中止時,存于PSP的這3個向量值被DOS恢復到中斷向量表中。
?
? ? 1 終止地址 - INT 22H
? ? 當一個程序結束時,控制轉到這個中斷向量新指的地址。這個地址是在加載該程序建立對應的PSP時被復制到PSP之中的,它由EXEC功能調用使用。
? ? 2 Ctrl-Break處理程序(INT 23H)
? ? DOS檢測到Ctrl-Break,就執行INT 23H。
? ? 3 嚴重錯誤處理程序(INT 24H)
? ? 當發生不可恢復的硬件錯誤,則控制由INT 24H轉移,該程序主要是顯示錯誤類型和提示:"Abort,Retry,Fail or Ignore?",并等待用戶輸入。
? ? 當進入INT 24H中斷服務程序,中斷服務程序將判定錯誤原因并作相應處理。
? ? 1) 用戶棧自頂至底被設置成:發出INT 24H時的寄存器值,執行INT 21H請求時的用戶寄存器值,來自用戶程序發出INT 21H 時的寄存器值;
? ? 2)錯誤類型和定位,由AH寄存器指定;
? ? 3)錯誤代碼存放在DI寄存器中;
? ? 4)BP:SI中含有設備標題控制塊的地址,用它可以檢索到附加的信息;
總結
以上是生活随笔為你收集整理的DOS内核学习 - DOS专用中断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用数值计算库Zero - VC6调用失
- 下一篇: C# DirectX编程对基本三角形应用