6

メインボードや PCI カードのイーサネット ポートなどのデバイスにアクセスする方法を知っている人はいますか?

特殊レジスターはありますか? オペコード?OS を呼び出す必要がありますか? もしそうなら、どのように?

前もって感謝します。

4

4 に答える 4

4

通信しようとしている特定のイーサネット MAC チップによって異なります。同じファミリのチップでも、動作方法にわずかな違いがあることがよくあります。これが、最新の OS に「ドライバー」の概念がある理由です。通常、ハードウェア メーカーはハードウェアを知っているためドライバーを作成し、ドライバーはハードウェアと OS が見たいものとの間の変換を提供します。

多くの場合、MAC チップの製造元からドキュメントを入手して、独自のドライバーを作成できます。繰り返しになりますが、適切な仕様を取得するには、通信しようとしているチップを正確に把握する必要があります。一部のチップには公的なドキュメントがありませんが、通常、イーサネット チップでは問題になりません。

于 2009-12-03T04:22:04.040 に答える
2

おそらく探しているものではないかもしれませんが、最も簡単な答えは、C コードを記述してカードにアクセスし、コンパイルして、コンパイラによって生成されたコードを確認することです。

C コードは、NIC ドライバーを直接通過するか、winpcapなどのライブラリーを使用する可能性があります。たとえば、Windowsのraw ソケットの組み込みサポートは、セキュリティ上の理由から無効になっています。

しかし、これは NIC がどのように機能するかを学ぶ最良の方法ではありません。そのためには、LAN91C111などの一般的な組み込み NIC のデータシートを選び、アクセス方法を読んでください。それは生の方法でEterthetをインターフェースすることについてあなたに多くを教えてくれます.

これはまだ、アセンブリ言語を学習するのに十分なサンドボックスではありません。そのためには、アセンブリにいくつかの小さなアルゴリズム プログラムを実装するだけです - 二分木検索など。

于 2009-12-03T04:45:25.697 に答える
0

入力および出力命令などを使用して、カード自体への呼び出しを使用できます。イーサネット カードはそれぞれ異なるため、製造元からのドキュメントが必要になります。

次のレベルアップは、Windows を使用していると仮定して、DOS 関数呼び出しです。これらにより、標準の MSDOS 呼び出しを使用して、イーサネット カードの限定された機能にアクセスできます。これらは、古い MSDOS ドキュメントに記載されています。私が間違っていなければ、それらのほとんどは Windows の新しいバージョンでも動作します。

于 2009-12-03T04:20:28.287 に答える
0

特定のポート アドレスに書き込む必要があります。この Wiki ページから始めることができます。
MemoryMappedIO

于 2009-12-03T04:20:34.420 に答える