割り込みハンドラ

割り込みハンドラとは、ハードウェア割り込みもしくはソフトウェア割り込み時に、割り込みベクタを参照して呼び出される割り込み処理のサブルーチンのことです。

割り込みハンドラが格納されているメモリアドレスを割り込みベクタに登録することにより、割り込みベクタを利用する割り込み時に、割り込みハンドラが呼び出されます。

特に、割り込みコントローラを経由したプロセッサのペリフェラルからのハードウェア割り込みに対しては、任意の割り込みハンドラを割り込みベクタに登録して、それぞれのハードウェア割り込みを処理します。

例えば、ハードウェア割り込みA時に割り込みハンドラAが呼び出され、ハードウェア割り込みB時に割り込みハンドラBが呼び出されるといった感じです。

割り込みフラグの設定と割り込みハンドラ

割り込みベクタの設定によっては、割り込みハンドラが呼び出される際に、プロセッサが以降のIRQを無視するように割り込みフラグが設定されます。

通常、IRQに対応する割り込みベクタは、この設定にします。

これは、プロセッサが多重にIRQを受け付けないようにするためです。

割り込みリターン命令と割り込みハンドラ

ハードウェア割り込みで呼び出す割り込みハンドラは、最後に割り込みリターン命令が必要です。

これにより、割り込みフラグもハードウェア割り込み前の状態に戻るため、プロセッサは、IRQの受付を再開します。