-2

アセンブリ言語で少しプログラミングをしています。質問があります。キーが押されているかどうかを確認するにはどうすればよいですか。たとえば、キーを押している場合はF8、ジャンプして再起動します。

4

1 に答える 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 に答える