中斷向量

维基百科,自由的百科全书
跳转至: 导航搜索

中斷向量Interrupt vector)是中断服务程序的入口地址,或中断向量表(它是一个数组)的下标,中断服务程序的入口地址存放在该数组中。

系統程式必須維護一份中斷向量表,這是一個很單純的表格,每一個entry紀錄一個位址,這個位址指到一段程式(或說一個函數),稱為中斷處理程式(或ISR,Interrupt Service Routine)

  • 系統程式必須告訴CPU或中斷處理器,中斷向量表放在哪裡(位於哪個位址)
  • 當外部事件或exception產生時,CPU或中斷處理器會知道第幾號中斷產生了,並參考中斷向量表,再將CPU“跳”到中斷向量表相對entry裡紀錄的位址
  • 中斷處理程式執行完畢後,會返回被中斷的程式(經由 iret 指令返回)

用途[编辑]

  • 系統共用的服務處理,例如BIOS或VGA或DOS所提供的服務
  • 硬體觸發事件,例如:IRQ 0 ~ 15
  • CPU的例外處理,例如:Int 0,除數為0
  • 程式除錯用,斷點(Int 3)或單步執行(Int 1)

外部參考[编辑]