什么是中斷向量表
中斷向量表就是中斷向量的列表。
中斷向量表在內(nèi)存中保存,其中存放著 256個(gè)中斷源所對(duì)應(yīng)的中斷處理程序的入口,如下圖所示:

由于CPU隨時(shí)都可能檢測(cè)到中斷信息,也就是說(shuō),CPU 隨時(shí)都可能執(zhí)行中斷處理程序,所以中斷處理程序必須一直存儲(chǔ)在內(nèi)存某段空間之中。
而中斷處理程序的入口地址,即中斷向量,必須存儲(chǔ)在對(duì)應(yīng)的中斷向量表表項(xiàng)中。

中斷向量表在內(nèi)存中存放,對(duì)于8086PC機(jī),中斷向量表指定放在內(nèi)存地址0處開(kāi)始的地方。
從內(nèi)存0000:0000到0000:03FF的1024個(gè)單元中存放著中斷向量表。
中斷指令的格式為 int n,指令中的n為字節(jié)型立即數(shù),是提供給CPU的中斷類型碼。
CPU的設(shè)計(jì)者必須在中斷信息和其處理程序的入口地址之間建立某種聯(lián)系,使得CPU根據(jù)中斷信息可以找到要執(zhí)行的處理程序。
中斷信息中包含有標(biāo)識(shí)中斷源的類型碼。根據(jù)CPU的設(shè)計(jì),中斷類型碼的作用就是用來(lái)定位中斷處理程序。
比如CPU 根據(jù)中斷類型碼 4,就可以找到4號(hào)中斷處理程序的入口地址4x4=16,即0010H單元開(kāi)始的4個(gè)內(nèi)存單元。
可隨之而來(lái)的問(wèn)題是,若要定位中斷處理程序,需要知道它的段地址和偏移地址,而如何根據(jù) 8位的中斷類型碼得到中斷處理程序的段地址和偏移地址呢?
CPU用 8 位的中斷類型碼通過(guò)中斷向量表找到相應(yīng)的中斷處理程序的入口地址。
找到這個(gè)入口地址的最終目的是用它設(shè)置CS和IP,使CPU執(zhí)行中斷處理程序。這個(gè)工作是由CPU的硬件自動(dòng)完成的。
CPU 硬件完成這個(gè)工作的過(guò)程被稱為中斷過(guò)程。

以int 0中斷(除數(shù)為0中斷)為例。
當(dāng)CPU執(zhí)行int 0指令時(shí),將引發(fā)中斷過(guò)程,執(zhí)行 0號(hào)中斷處理程序,結(jié)合圖1和圖3,首先找到0號(hào)中斷在中斷向量表中的保存入口地址的起始單元地址0x4=0,接著將00A7送入CS寄存器,再將1068送入IP寄存器,CPU就進(jìn)入了0號(hào)中斷的處理程序。
所以,中斷向量表就是從0號(hào)單元開(kāi)始,用來(lái)保存各個(gè)中斷程序入口地址的一段內(nèi)存單元,其大小為1k。