BIOS割込みルーチン とは、コンピュータ本体に組み込みで用意されたソフトウエアの一種である。

BIOSプログラムの一部で、機械語の割込み命令(INT、TRAP、RST など)によって呼び出す、ハードウエアを直接扱うためのサービスルーチンが用意される。主にコンピュータを起動した際のオペレーティングシステムを初期化・準備する段階で利用される。

利用方法

編集

x86系列のCPUをもつコンピュータで例示する。

READ_ATTEMPT:
 PUSH ES        ;必要に応じてレジスタ値退避
 PUSH AX
 PUSH BX
 PUSH DX
 MOV  AX,0x07e0 ;パラメータセット
 MOV  ES,AX
 MOV  AH,2
 MOV  AL,1
 XOR  BX,BX
 MOV  DL,1
 INT  13H       ;プログラムから割り込み発生(呼び出し)
 POP  DX        ;必要に応じて退避したレジスタ値を復元
 POP  BX
 POP  AX
 POP  ES
 JC   READ_ERR  ;フラグや戻り値を判定・利用
READ_OK:
...
READ_ERR:
...

BIOS割込みルーチンの例

編集

割り込みルーチンの割り当て・機能は、コンピュータの機種ごとに異なる。(ただし、互換機同士であれば同じ)

PC/AT互換機

編集
ベクタ番号 処理内容!
00H CPUが発生させる:ゼロ除算
01H CPUが発生させる:トレース
02H CPUが発生させる:NMI
03H (デバッグ(ブレイクポイント)に利用)
04H CPUが発生させる:算術オーバーフロー
05H CPUが発生させる:境界チェック違反
06H CPUが発生させる:無効オペコード
07H CPUが発生させる:数値演算コプロセッサ未装着
08H IRQ0:システムタイマー
09H IRQ1:キーボード
0AH IRQ2:割り込みコントローラ(PIC)
0BH IRQ3:シリアルポート COM2 / 4
0CH IRQ4:シリアルポート COM1 / 3
0DH IRQ5:ISAバス
0EH IRQ6:フロッピーディスクコントローラ
0FH IRQ7:パラレルポート LPT1
10H ビデオ処理関係
13H ローレベルなディスクアクセス関係
14H シリアルポート関係
15H 各種サービスルーチン
16H キーボード関係
17H プリンター関係
1AH リアルタイムクロック関係
70H IRQ8:リアルタイムクロック
71H IRQ9:割り込みコントローラ(PIC)
72H IRQ10:
73H IRQ11:
74H IRQ12:PS/2マウス
75H IRQ13:数値演算コプロセッサ
76H IRQ14:プライマリIDEコントローラ
77H IRQ15:セカンダリIDEコントローラ

関連項目

編集

外部リンク

編集