1

私はtasmにこのコードを持っています

mov ah,00h
int 21h

cmp ah,3Bh

DOS ベースのアプリケーションであることを考慮すると、かなりうまく機能します (かなり古い割り込みを使用していることがわかります)。質問は、キーボードからスキャン コードを取得するのに相当する win32/システム コールは何ですか? 基本的にユーザーが F1 キーを押すと (スキャンコードは 3Bh)、AH レジスタに登録されます。システムコールを介してwin32アセンブリでこれをどのように実装できますか? (extrn、kernel32 dllなどを含むもの)NASMを使用しています

4

1 に答える 1

1

コンソール モード プログラムの場合、32 ビット アセンブリ コードのホームとして最も可能性が高いのはReadConsoleInput()です。GUI アプリは、GetMessage() によって返された WM_KEYDOWN および WM_CHAR メッセージからキーストロークを取得します。しかしもちろん、アセンブリで GUI アプリを作成することはありません。それには意味がありません。

C ランタイム ライブラリから _getch() を呼び出すのがおそらくこれを行う最も簡単な方法です。これは int を返す単純な関数です。

于 2013-02-27T18:45:53.020 に答える