web-dev-qa-db-ja.com

BIOS拡張機能(オプションROM)はどのように機能しますか?

BIOS拡張機能(オプションROM)はどのように機能しますか?インストールされたデバイスに、システムに機能を追加する独自のBIOSがある場合があることは理解していますが、それらがどのように設定されているかはわかりません。

次のアドレス範囲0x0C0000〜0x0F0000が使用されているのを読み続けていますが、これが何に使用されているのかわかりません。 ROMがこれらのアドレスに格納されているかのようですが、それがどのように機能するのかわかりません。両方とも0x0C0000であると予想される2つのデバイスをインストールした場合はどうなりますか?

次に、BIOSはオプションROMにジャンプし、そこから実行を開始します。次の質問は、ROMが割り込みベクトルテーブルに書き込み、割り込みをフックするときです。それ自体を指すために、これはどのアドレスを指しますか?

たとえば、VGAカードでは、INT 10hをどのアドレスに接続しますか?

または、オプションROM全体が0x0C0000から0x0F0000の間の領域にマップされ、IVTがこの範囲のどこかを指すということですか?

これは、もう使用されていない古いテクノロジー(割り込みの使用など)に関するものですが、それらがどのように機能するかについては興味があります。

誰かが上記の質問に答えるのを手伝ったり、簡単な概要を説明したりすることができれば、大いに感謝します、

ありがとう

4
RJSmith92

IBM PCの時代、ISAバスでは、各デバイスは単に異なるアドレスを使用する必要がありました。多くの場合、競合を回避するためにアドレスを変更するように構成できるハードウェアジャンパーまたはディップスイッチがありました。 PCIバスの出現により、ハードウェアアドレスはシステムbiosによって自動的に構成され、各デバイスに一意のアドレスが割り当てられます。

Opromが割り込みをフックすると、opromが存在する割り当てられたアドレス内のアドレスを指します。 VGA BIOSの場合、通常は0xC0000ブロック内にありました。 msdosデバッガーを使用すると、割り込みベクタテーブルを調べてエントリポイントを確認し、そこで命令の分解を開始して、それらが何をしたかを確認できます。

6
psusi