-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 回答