1

私はアセンブリプログラミングが初めてで、ユーザーからの入力を受け入れるアセンブリ (x86) コードを持っています。コンソールは、「Enter」キーが押されるまで、継続的に (ループして) ユーザーに別の文字を入力するように求めます。「Enter」キーを押すと、コンソールは自動的にそれ以上の入力を求めなくなります。

どうすればそれができるでしょうか?中断と関係がありますか?アドバイスをありがとう...

4

2 に答える 2

0

オペレーティング システムなしで、または MS-DOS で実行する場合は、次の 2 つの可能性があります。

最初の1つ:

  • キーボード (I/O ポート) に直接アクセスする (IN および OUT 命令を使用)
  • また、キーボード割り込みをキャッチまたは無効にする必要があります。そうしないと、BIOS がキーボード要求を「盗む」ためです。

2番目のもの:

  • BIOS割り込み「INT 0x16」を使用してキーボードにアクセスします

最新のオペレーティング システム (Windows、Linux など) を使用している場合、キーボードに直接アクセスすることはできません。オペレーティング システムの API 関数を呼び出す必要があります。これは、C でプログラミングするときに呼び出すものと同じです。

// C example:
getchar();

と:

# Assembler example (Windows: _getchar, Linux: getchar):
call _getchar
于 2013-08-27T20:56:52.637 に答える