割り込みベクタとは、少なくとも「ソフトウェア割り込み命令で指定するオペランドの番号(以降、割り込み番号)」と「その割り込み番号に対応した割り込み処理が開始されるメモリアドレス」との対応を含んだ情報のことです。
例えば、ある割り込み番号に対応した割り込みベクタが8バイトの情報で、割り込み番号が0~255まであれば、全体の割り込みベクタは、2048バイトの情報となります。
割り込みベクタは、メインメモリ上の所定のメモリアドレスに配置します。
ソフトウェア割り込み命令は、この割り込みベクタを参照して、割り込み処理が開始されるメモリアドレスを把握します。
割り込みベクタは、以下の流れで利用されます。
1. 割り込み番号aでソフトウェア割り込み命令を実行する。
2. ある割り込み番号に対応した割り込みベクタが8バイトだった場合、割り込み番号aの割り込みベクタの相対アドレスは、8aとなる。
3. 全体の割り込みベクタの先頭のメモリアドレスがAであれば、割り込み番号aの割り込みベクタのメモリアドレスは、A + 8aとなる。
4. このメモリアドレスを起点にして、ロード命令で8バイトのデータを読み出す。
5. 読み出したデータに含まれる「割り込み番号aに対応した割り込み処理が開始されるメモリアドレス」を無条件分岐命令でプログラムカウンタに書き込む。
6. 割り込み処理が開始される。