4

私は議会の世界の初心者です、

シリアル、パラレル、VGA、キーボードなどのハードウェアデバイスと通信するためのアセンブリコードを書き込もうとしています。

これは、x86 Intelプロセッサのリアルモードで、アセンブリコードをロードするために個人的に作成したブーストラップからコードを起動することで実行しています。

チュートリアルを読んで得た知識によると、BIOS INTサービスルーチン(ISR)を使用するのが最も簡単な方法でしたが、最も長い方法は、たとえば次のように、ハードウェアのさまざまなレジスタにアクセスすることです。シリアルポートのステータスレジスタと制御レジスタ...

Q1:これについては正しいですか?

BIOS INTを使用してVGAおよびシリアルハードウェアと通信できましたが、USBコントローラーのBIOS割り込みが見つかりませんでした。

Q2:USBポートと通信できるようにするために、そして他の残りのポートについては、一般的にするために私を助けてくれませんか?

Q3:

4

3 に答える 3

5

Alexが言うように、USBのユニバーサルBIOSレベルのサポートはありません。ただし、USBデバイス用のリアルモードDOSドライバを作成する試みがいくつかあります。使用できるはずのソースコードが記載されたページを見つけました:http://bretjohnson.us/source/source.htm

于 2011-12-05T12:27:02.950 に答える
5

GEUBマニュアル(http://www.gnu.org/software/grub/manual/html_node/Installing-GRUB-using-grub_002dinstall.html)によると、バグのないBIOSはUSBをハードドライブとして公開します。したがって、ハードドライブ割り込み(INT 0x13など)を使用して、通常のハードウェアと同じようにUSBをプローブしてアクセスできます。BIOSはCDROMに対して同じことを行います(http://wiki.osdev.org/El-Toritoエミュレーションなしモードを参照)。BIOSは、サポートされているすべてのブートオプションに対してこれを実行すると思いますが、これをサポートするドキュメントは見つかりませんでした。

于 2013-10-02T13:54:17.347 に答える
4

PC BIOSには、他のすべてのI / O(キーボード、ディスプレイ、シリアル、パラレル、ディスク、スピーカー)と同様のUSB I/Oをサポートするものはありません。USBがパーティーに到着するのが遅すぎました。BIOSから取得できる唯一のUSB関連の機能は、USBキーボードとUSB経由で接続されたストレージのサポートです(最新のPCではそれらから起動できます)。それ以外は、独自のUSBスタックを実装する必要があります。

于 2011-12-04T09:02:02.513 に答える