汇编程序 - 如果正在按下特定键,如何检查

时间:2013-07-11 09:53:05

标签: assembly

我正在使用汇编语言进行一些编程。我有一个问题。我如何检查是否正在按键,例如如果我按 F8 键,跳转到重启。

1 个答案:

答案 0 :(得分: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代替,或直接写入视频内存)。