中斷與函式呼叫的區別
阿新 • • 發佈:2019-02-02
1、兩過程定義與作用
子程式是微機基本程式結構中的1種,基本程式結構包括順序(簡單)、分支(判斷)、迴圈、子程式和查表等5種。
子程式是一組可以公用的指令序列,只要給出子程式的入口地址就能從主程式轉入子程式。子程式在功能上具有相對的獨立性,在執行主程式的過程中往往被多次呼叫,甚至被不同的程式所呼叫。一般微機首先執行主程式,碰到呼叫指令就轉去執行子程式,子程式執行完後,返回指令就返回主程式斷點(即呼叫指令的下一條指令),繼續執行沒有處理完的主程式,這一過程叫做(主程式)呼叫子程式過程。
子程式結構可簡化程式,防止重複書寫錯誤,並可節省記憶體空間。計算機中經常把常用的各種通用的程式段編成子程式,提供給使用者使用。使用者在自己編寫的程式中,只要會呼叫這些子程式,就可大大簡化使用者程式設計的困難。
中斷是計算機中央處理單元CPU與外設I/O交換資料的一種方式,除此方式外,還有無條件、條件(查詢)、存貯器直接存取DMA和I/O通道等四種方式。由於無條件不可靠,條件效率低,DMA和I/O通道兩方式硬體複雜,而中斷方式CPU效率高,因此一般大多采用中斷方式。
中斷概念是當計算機正在執行某一(主)程式時,收到一中斷請求,如果中斷響應條件成立,計算機就把正在執行的程式暫停一下,去響應處理這一請求,執行中斷服務程式,處理完服務程式後,中斷返回指令使計算機返回原來還沒有執行完的程式斷點處繼續執行,這一過程稱為中斷過程。有了中斷,計算機才能具有並行處理,實時處理和故障處理等重要功能。
2、兩過程的聯絡與區別
2.1聯絡
中斷與呼叫子程式兩過程屬於完全不同的概念,但它們也有不少相似之處。兩者都需要保護斷點(即下一條指令地址)、跳至子程式或中斷服務程式、保護現場、子程式或中斷處理、恢復現場、恢復斷點(即返回主程式)。兩者都可實現巢狀,即正在執行的子程式再調另一子程式或正在處理的中斷程式又被另一新中斷請求所中斷,巢狀可為多級。
正是由於這些表面上的相似處,很容易使學生把兩者混淆起來,特別是把中斷也看為子程式,這就大錯特錯了。
2.2區別
中斷過程與呼叫子程式過程相似點是表面的,從本質上講兩者是完全不一樣的。
兩者的根本區別主要表現在服務時間