K氏のheboOSをまねてみる

32:INT 0x09 の乗っ取り
-- K 09/26 17:48
 もちろんLIDTはnaskでも使えます。使えますが、それではおそらくhideyosiさんのやりたいことを達成できないと思うので、簡単に説明します。

 とりあえずIDTのことは忘れていいです。

 もしINT 0x09を(BIOSから)乗っ取りたいのなら、INT 0x09が来たときに実行してほしいプログラムをどこかに書いて、

(例)

int09:
  ごにょ

そんでもって、

  MOV WORD [0x09*4+0],int09
  MOV WORD [0x09*4+2],0

とすればいいです。他の割り込み番号であれば、0x09の部分を変えればOKです。最小値は0x00で最大値は0xffになります。
 最小値のとき、アドレスを電卓で計算すると、0x0000と0x0002になります。最大のとき、アドレスを電卓で計算すると、0x03fcと0x03feになります。・・・ということで、割り込み関係の設定は全部で0x0000から0x03ffというわけですが、これは、

  http://community.osdev.info/index.php?(AT)memorymap

の「ソフトウェア的用途区分」にも書いてあるわけです。

 ちなみに、[0x09*4+0]や[0x09*4+2]に書いてある値を調べれば、いつでも割り込みが起きたときにどういう処理をしているのかが調べられます(もちろんそのアドレスにかかれているプログラムを解析すれば、という意味です)。

めでたしめでたし。

1-

BluesBB ©Sting_Band