中斷定義

 1、中斷和中斷源

所謂中斷就是CPU暫停當前程序的執行,轉而執行處理緊急事務的程序,並在該事務處理完後能自動恢復執行原先程序的過程。在此,稱引起緊急事務的事件爲中斷源,稱處理緊急事務的程序爲中斷服務程序或中斷處理程序。   計算機系統還根據緊急事務的緊急程度,把中斷分爲不同的優先級,並規定:高優先級的中斷能暫停低優先級的中斷服務程序的執行。

計算機系統有上百種可以發出中斷請求的中斷源,但最常見的中斷源是:外設的輸入輸出請求,如:鍵盤輸入引起的中斷,通信端口接受信息引起的中斷等;還有一些計算機內部的異常事件,如:0作除數、奇偶校驗錯等。

CPU在執行程序時,是否響應中斷要取決於以下三個條件能否同時滿足:

(1)、有中斷請求;
(2)、允許CPU接受中斷請求;
(3)、一條指令執行完,下一條指令還沒有開始執行。

條件(1)是響應中斷的主體。除用指令INT所引起的軟件中斷之外,其它中斷請求信號是隨機產生的,程序員是無法預見的。

程序員可用程序部分地控制條件(2)是否滿足,即可用指令STI和CLI來允許或不允許CPU響應可屏蔽的外部中斷。而對於不可屏蔽中斷和內部中斷,CPU一定會響應它們的,程序員是無控制權的。CPU一定會執行這些中斷的中斷服務程序
 
中斷處理程序基本上是系統程序員編寫好的,是爲操作系統或用戶程序服務的。爲了在應用程序中使用中斷服務程序,程序員必須能夠在程序中有目的地安排中斷的發生。爲此,指令系統提供了各種引起中斷的指令。

1、中斷指令INT

中斷指令INT的一般格式如下:

INT   Imm

其中:立即數Imm是一個0~0FFH範圍內的整數。

指令執行的步驟:
 
  ◆、把標誌寄存器壓棧,清除標誌位IF和TF;  
◆、把代碼段寄存器CS的內容壓棧,並把中斷服務程序入口地址的高字部分送CS;  
◆、32位段,壓32位IP。
 

在該指令執行完後,CPU將轉去執行中斷服務程序。由於有了指令INT,程序員就能爲滿足某種特殊的需要,在程序中有目的地安排中斷的發生,也就是說,該中斷不是隨機產生的,而是完全受程序控制的。


在C裏你可以把中斷理解爲一組系統提供的函數
INT   13H表示13H號函數

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