1

C バイト サイズの PC アーキテクチャ ハードウェア ポート入出力関数に相当する Java-on-Linux は何ですか?

出力についてはoutb、次のようになります。

tmp = inb(0x61);
if (tmp != (tmp | 0x01)) 
    outb(0x61, tmp | 0x01);

入力にはinb、次のようなものがあります。

tmp = (inb(0x61) & 0xfe);
outb(0x61, tmp);

目的: これよりもオーバーヘッドが少ないものを実装したい:

try { Runtime.getRuntime().exec("beep") } catch (IOException e) {}

コード 7 (ベル文字) を標準出力に送信する代わりに、これは Ubuntu で積極的に無効にされているようです。Toolkit のビープ音もミュートされます。

4

1 に答える 1

0

あなたは間違った電車を吠えていると思います。

Java は、仮想マシン アーキテクチャにコンパイルするオブジェクト指向の高水準言語です。アセンブラ I/O 命令は、ハードウェア プロセッサ固有です。この 2 つの間に直接的な同等性はありません。

期待できる最善の方法は、必要な I/O を実行するネイティブ Linux アプリと Java コードを (パイプ、共有メモリ、ソケットなどを使用して) インターフェイスすることです。

于 2012-01-19T12:05:47.750 に答える