リアルモードの割り込み/例外

リアルモードで動作しているCPUに、割り込みや例外が発生すると下記の動作が発生します。

  1. CS,IP,EFLAGSレジスタをスタックに待避します。
  2. 次にハンドラ実行中に割り込みを受け付けないように、EFLAGSレジスタのIFフラグをクリアし、割り込み禁止にします。そして、ベクターテーブルと呼ばれる、発生したハンドラ番号に対応するハンドラルーチンのアドレスが書かれたテーブルからアドレスを求め、その値をCS,IPレジスタにセットしハンドラ処理に制御を移します。
  3. ハンドラの実行終了後は、スタックに待避されていた、CS,IP,EFLAGSレジスタを復帰させ、割り込み前に動いていた処理に戻ります。
リアルモードの割り込み
リアルモードの割り込み

リアルモードのベクターテーブル

リアルモードのベクターテーブルは、0000H番地から03FFH番地までの物理アドレスに固定で割り付けられています。
各エントリーは4byteで、割り込み発生時に呼ばれるハンドラのオフセットをセグメントが格納されています。そして、それぞれのエントリーは割り込みベクター番号に対応しています。

リアルモードのベクターテーブル構成
リアルモードのベクターテーブル構成
Last modified: Wed Jan 23 19:23:06 2008 JST