アセンブリ言語で少しプログラミングをしています。質問があります。キーが押されているかどうかを確認するにはどうすればよいですか。たとえば、キーを押している場合はF8、ジャンプして再起動します。
4552 次
1 に答える
3
これは私にとってはうまくいきます(x86リアルモードを想定):
[org 0x100]
[bits 16]
mov dx,prompt
mov ah,9
int 21h
wait_for_f8:
mov ah,0
int 16h ; Get keystroke
cmp ah,42h ; 42h == scancode for F8
jne wait_for_f8
mov dx,exit_msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
prompt: db 'Please press F8..$'
exit_msg: db 13,10,'F8 pressed',13,10,'$'
DOS 割り込み ( int 21h
) は、ユーザーに何らかのフィードバックを提供するためだけに存在します。ブートローダーでは、それらは必要ありません (ブートローダーでテキスト出力が必要な場合は、int 10h
代わりに使用するか、ビデオメモリに直接書き込むことができます)。
于 2013-07-11T10:23:59.413 に答える