硬件中斷和軟件中斷以及中斷與函數調用的區別


《匯編語言程序設計》Richard Blum著:6.2.3中斷

 

中斷有兩種形式:

(1)硬件中斷;

(2)軟件中斷。

 

硬件設備生成硬件中斷。

使用硬件中斷發出信號,表示硬件層發生的事件(比如I/O端口接收到輸入信號時)。

 

程序生成軟件中斷。

它們是把控制交給另一個程序的信號。

 

當一個程序被中斷調用時,發出調用的程序暫停,被調用的程序接替它運行。指令指針被轉移到被調用的程序,並且從被調用的程序內繼續執行。被調用的程序完成時,它可以把控制返回給發出調用的程序(使用中斷返回指令)。

 

軟件中斷是操作系統提供的,使應用程序可以使用操作系統內的函數,並且,在某些情況下,甚至可以接觸底層的BIOS系統。在Microsoft DOS操作系統中,為很多函數提供了0x21軟件中斷。在Linux領域,0x80中斷用於提供低級內核函數。

 

 

http://blog.sina.com.cn/s/blog_913c070a0100zse4.html

中斷:

1)何時發生可能是不可預料的;CPU正在處理某件事情的時候,外部發生的某一事件(如一個電平的變化,一個脈沖沿的發生或定時器計數溢出等)請求CPU迅速去處理,於是CPU暫時中止當前的工作,轉去處理所發生的事件。中斷服務處理完該事件以后,再回到原來被中止的地方繼續原來的工作

2)對於可剝奪型內核,完成中斷調度后,不是立刻返回原來的執行點執行,而是回到就緒態優先級最高的任務開始運行。

3)沒有返回值;

4)不能傳遞參數。

 

函數:

1)何時發生是可預料的;

2)完成函數調度后會返回到原來的代碼片段繼續執行;

3)有返回值;

4)能傳遞參數。

 

相同點:

1)在執行調度之前,都保存現場;

2)都是調用一個subcode。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM