我用键盘敲击编码一个小游戏' a'而且我不想在我的循环中等待,所以我尝试了16h,啊= 01h。当我按下键的时候。它就好像键被卡住一样,按下键后如何清空/刷新缓冲区?
mov ah,01h
int 16h
感谢您的帮助
答案 0 :(得分:4)
当你知道有一个按键等待用int16函数1读取时,只需使用函数0获取密钥:
mov ah, 1 ; peek
int 16h
jz NoKey
mov ah, 0 ; get
int 16h
答案 1 :(得分:1)
如果您仍然想清除缓冲区,则可以使用以下方法:
proc ClearBuffKB
push ax
@@CheckBuffer:
mov ah ,1
int 16h
jz @@return
mov ah ,0
int 16h
jmp @@CheckBuffer
@@return:
pop ax
ret
endp ClearBuffKB