2016-11-20 10 views
1

を取得し、私はこのコードを使用します。私はキーが押されたときに、押されたキーに関する情報がahとalのレジスタに格納されていることを知っています。たとえば、Enterキーを押すと、0x0Dがalレジスタに格納されます。私がバックスペースを押すと0x08になります。しかし、これらは私が知っている唯一の2つの鍵です。実モード総会はリアルモードのアセンブリではキーボード入力

すべてのキーボードキーのリストはありますか?たとえば、私が 'a'を押すと、al/ahの値はどうなりますか? (ASCIIテーブルはこのことについて何の情報を持っていません。)

+0

20年前私は同じ質問に直面したので、任意のキーまたはキーの組み合わせが押されたときにint 0x16から返される情報を表示するユーティリティOPIN.COMを作成しました。 http://vitsoft.info/opin.htm – vitsoft

答えて

1

RBILから:

キーボード - GETキーストローク

AH = 00H

戻る:
AH = BIOSスキャンコード
AL = ASCII文字

ahには、キーボードスキャンコードとASCII文字のalが含まれます。

すべてのキーには2つのスキャンコードがあります(&リリース)。これはキーボードコントローラから返され、さらに抽象レイヤーによってスキャンコードから特定の文字セット(ASCIIなど)へのマッピングが提供されるため、ユーザーは代わりに文字セット値を操作できます。
スキャンコードのリストはhere(thanks @MichaelPetch)です。しかし、スキャンコードはIBMのPCと共に進化しているので、部分的に互換性のある複数のスキャンコードがあります。スキャンコードを使用する場合は、使用しているスキャンコードの種類に注意してください。

今後の質問については、常にRalph Brown's Interrupt List (RBIL)をご覧ください。

関連する問題