1

割り込みがどのように機能するかについての私の基本的な理解から、ソフトウェアまたはハードウェアの割り込みが呼び出されると、CPU は (リアル モードで) メモリの最初の 1024 バイトにある IVT を調べ、割り込みハンドラー アドレスを取得し、その場所から実行を開始します。また、私が理解していることから、IVT の値をオーバーライドして、割り込みを処理できるカスタム サブルーチンを指すことができます。

私が理解できないのは、BIOS 機能がどのように機能するかです。たとえばint 0x10、CPU は、割り込みがメモリにマップされたサブルーチンではなく、BIOS 関数に対応していることをどのように認識しますか (アドレスが格納されている割り込みハンドラを呼び出します4 * 0x10)。

4

1 に答える 1

2

CPUは知りません。BIOS はメモリにマップされます。4 * 0x10 に格納されているアドレスは、BIOS の INT 10H ハンドラのアドレスです。

起動時に、BIOS は割り込みテーブルを初期化し、BIOS ルーチンを指すようにします。

必要に応じて、4 * 0x10 に格納されているアドレスを保存し、独自の INT 10H ハンドラーのアドレスに置き換えることができます。ちなみに、私が提案するものではありません...しかし、それは可能です。そのようなことは、当時の DOS 割り込みでは一般的でした。BIOS の割り込みの場合は、それほどではありませんが、時々行われていました。

于 2013-03-12T18:57:50.950 に答える