2012-02-26 40 views

回答

1

通常你寫在彙編中的中斷程序的至少一部分。這是因爲在很多情況下,中斷只是簡單地使處理器向量到某個特定的內存位置,然後從那一點開始執行代碼。因爲你的處理器可能不遵守你使用的任何更高級的lanugage的調用約定,所以你需要編寫一些彙編代碼來修復它,調用一些更高級別的中斷處理代碼,然後一些更多彙編代碼來清除中斷並使系統恢復正常執行。例如,在Intel芯片上,您需要使處理器執行iret指令才能從中斷返回。用任何高級語言以任何標準方式都無法做到這一點。

+0

嘿感謝您的快速回復。自上午以來我一直在努力尋找答案。 – user1165418 2012-02-26 05:30:25

2

中斷處理程序始終在非常低的級別環境中開始執行。編程語言,但彙編總是需要系統庫和一些稱爲「運行時」的東西。

例如,在彙編語言之外操作堆棧指針寄存器並不容易。

另外,ABI也是一個障礙。應用程序二進制接口在中斷處理中過於複雜,特別是在上下文保存和恢復方面。