① 匯編語言的中斷服務的中斷服務程序是什麼
嗯,我猜你問的是PC的,不是單片機
一、匯編語言的中斷分以下幾種:
1.BIOS中斷,這是固化到BIOS程序中的,每次開機BIOS會自動載入到指定內存
2.186下的DOS中斷,在DOS系統被載入後,系統會延用BIOS的中斷向量,並向裡面添加一些新的向量,這些功能便是DOS系統自帶的中斷服務程序
3.286及以上的系統中斷,PC會進入保護模式,在OS被載入後,中斷由IDT控制,這一機制類似於中斷向量表,只不過中斷向量換成了選擇子。這樣的中斷機制對不同型號的CPU有略微的差別,這里不細說了,我自己也沒全弄明白。
二、中斷實現的方式(8086下的普通中斷)
聽說過「優先順序編碼器」沒?——如果同時有兩個信號被接收,會指定某一個信號的優先順序高,先執行它。中斷就是類似的處理方法。
當CPU獲取到某一高操作優先順序的信號時(比如時鍾,每固定時間就會觸發一次;比如鍵盤響應,用戶希望通過Ctrl+C來退出任何正在執行的DOS程序),CPU會將當前正在執行的程序掛起來,轉而去處理該信號(類似於Call,但略有不同,你看的書應該會講到)。
處理中斷時,系統會將其解釋為一個標號,比如int 9h、int 21h等等。這個標號是一個序號,在內存某處存放著連續的一個表格,這個標號便是表格中的「行號」,只不過,每一行是兩列,包括了該中斷的處理程序的段基址和偏移量。中斷向量表是從0000:0000開始的,每4位元組為一個表項。中斷標號x4就是對應的中斷向量表項所存的地址,高地址是基地址,低地址是偏移。
這么說不知道你懂不懂。。。
反正總結一下你的問題吧,中斷服務程序是載入到內存中的,它在載入前可能是存在BIOS晶元上,也可能是存在硬碟里的;中斷向量表裡只能寫上中斷處理程序的入口地址,要知道每個表項只有4位元組;具體的中斷服務程序,我不信你學匯編的書上不講,我大概講一下:CPU的INTR引腳獲得了中斷信號,得到了標號,比方說是5號,中斷向量表項為0000:000A,讀取這個內存,得到中斷程序入口地址比方說是AAAA:BBBB,那麼它會將當前的CS/IP、Flags寄存器入棧,然後轉到AAAA:BBBB處去執行一直到iret指令返回原任務(或許該中斷結束了這個任務,就不會返回了)。
至於保護模式的中斷,相信你暫時還沒遇到。到後面還有操控8259A晶元來實現高級中斷的,這個就不是一般需要學的了。
② 什麼是中斷什麼是中斷服務程序什麼是中斷源
1、中斷:指當出現需要時,CPU暫時停止當前程序的執行轉而執行處理新情況的程序和執行過程。即在程序運行過程中,系統出現了一個必須由CPU立即處理的情況,此時,CPU暫時中止程序的執行轉而處理這個新的情況的過程就叫做中斷。
2、中斷服務程或輪基序:處理器處理"急件",可理解為是一種服務,是通過執行事先編好的某個特定的桐尺程序來完成的,這種處理"急件"的程序被稱為--中斷服務程序。
3、中斷是處理器一種工作狀態的描述。我們把引起中斷的原因,或者能夠發出中斷請求信號的來源統稱為中斷源。
③ 在計算機系統中,請解釋什麼是中斷,請用流程圖畫出一次中斷處理流程
中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序並轉入處理新情況遲笑的程序,處理完畢後又返回原被暫停的程序繼續運行。
中斷流程圖如下:
(3)中斷服務程序為什麼需要快速完成擴展閱讀
眾所周知,處理器的速度跟外圍硬體設備的速度往往不在一個數量級上,因此,如果內核採取讓處理器向硬體發出一個請求,然後專門等待回應的辦法,顯然降低內核效率。
既然硬體的響應這么慢,那麼內核就應該在此期間處理其他事務,等到硬體真正完成了請求的操作之後,再回過頭來對它進行處緩州理。想要實現這種功能,輪詢(polling)可能會是一種解決辦法。可以讓內核定期對設備的狀態進行查詢,然後做出相應的處理。
不過這種方法很可碼哪含能會讓那個內核做不少無用功,因為無論硬體設備是正在忙碌著完成任務還是已經大功告成,輪詢總會周期性的重復執行。更好的辦法是由我們來提供一種機制,讓硬體在需要的時候再向內核發出信號(變內核主動為硬體主動),這就是中斷機制。
中斷使得硬體得以與處理器進行通信。舉個例子,在你敲打鍵盤的時候,鍵盤控制器(控制鍵盤的硬體設備)會發送一個中斷,通知操作系統有鍵按下。中斷本質是一種特殊的電信號,由硬體設備發向處理器。
處理器接受到中斷後,會馬上向操作系統反映此信號的到來,然後就由os負責處理這些新到來的數據。硬體設備生成中斷的時候並不考慮與處理器的時鍾同步——換句話說就是中斷隨時可以產生。因此,內核隨時可能因為新到來的中斷而被打斷。
不同的設備對應的中斷不同,而每個中斷都通過一個惟一的數字標識。因此,來自鍵盤的中斷就有別於來自硬碟的中斷,從而使得操作系統能夠對中斷進行區分,並知道哪個硬體設備產生了哪個中斷。這樣,操作系統才能給不同的中斷提供不同的中斷處理程序。
在它執行程序的時候,如果有另外的事件發生(比如用戶又打開了一個程序)那麼這時候就需要由計算機系統的中斷機制來處理了。
中斷機制包括硬體的中斷裝置和操作系統的中斷處理服務程序。
讓硬體在需要的時候再向內核發出信號。
參考資料來源:網路-中斷機制
參考資料來源:網路-中斷
④ 簡述中斷處理的過程。指出其中哪些工作是由硬體完成的,哪些是由軟體實現的
CPU中斷處理過程為首先,將斷點處的PC值(即下一條應執行指令的地址)推入堆棧保留下來,這稱為保護斷點,由硬體自動執行。然後,將有關的寄存器內容和標志位狀態推入堆棧保留下來,這稱為保護現場,由軟體執行完成。保護斷點和現場後即可執行中斷服務程序,執行完畢,CPU由中斷服務程序返回主程序。
中斷返回過程為首先恢復原保留寄存器的內容和標志位的狀態,這稱為恢復現場,由軟體執行完成。然後,再加返回指令RETI,RETI指令的功能是恢復PC值,使CPU返回斷點,這稱為恢復斷點。恢復現場和斷點後,CPU將繼續執行原主程序,中斷響應過程到此為止。
(4)中斷服務程序為什麼需要快速完成擴展閱讀:
幾個中斷請求可能同時出現,但中斷系統只能按一定的次序來響應和處理。可最先被響應的中斷具有最高優先權,按優先順序別順序進行處理。優先權高低是由中斷部件的中斷排隊線路確定的。對應於各中斷級設置相應的屏蔽位。只有屏蔽位為1時,該中斷級才能參加中斷優先權排隊。
當機器設置很多中斷源時,為了簡化設計,對中斷源分組管理。具有相同中斷優先權的中斷源構成一個中斷級。同一級中斷使用同一個中斷控製程序起點。