1

「リアルモード」でPCIカード(32ビット)にアクセスできますか?「リアルモード」は16ビットではありませんか?リアルモードでのみハードウェアにアクセスできると主張する開発者がいます。しかし、PCIは32ビットです...

4

1 に答える 1

1

はい、できます。

IO ポート 0xCF8 および 0xCF9 は、PCI 構成空間にアクセスするためのインデックスおよびデータ レジスタとして機能します。インデックス レジスタ (つまり 0xCF8) に書き込まれるアドレスには、あらかじめ定義された固定の形式があります (PCI 仕様を参照)。pci 構成データにアクセスするには、インデックス レジスタに書き込み、データ レジスタから読み取ります。

The Index register is a DWORD (32-bit) register and the format is:

Byte-3 = 0x80
Byte-2 = Bus No
Byte-1 = Upper 5 bits as DEVICE no, and lower 3 bits as FUNCTION no.
Byte-0 = Register no. to read from config space

したがって、リアル モードで Bus:0 Device:0 Func:0 register:0 から読み取るには、次のようにします。

IoPortWrite32(0xCF8, 0x80000000);
ValueRead = IoPortRead32(0xCFC);

お役に立てれば!

ありがとう、ロヒット

于 2012-03-20T21:06:43.967 に答える