您好,我正在尝试在MS-DOS调试上创建命令/代码,以查看我在键盘上按下的键。我拥有的代码仅适用于一次按键,但是当我按不同的按键时却无效。
我希望它可以使用2个或更多不同的按键,并根据按下的按键分别输出msg,即您按下shift-F1的十六进制54
Mov ah, 0
Int 16
Mov bh, ah
Mov bl, al
Cmp ah, 3b
Jne again
Mov ah, 9
Mov dx, [msg address]
Int 21
Int 20
Db ‘You pressed F1 key$’
答案 0 :(得分:-1)
如果在这里不是很关键,则可以不断从0x60h端口读取输入,并查看其提供的内容。低于128的值表示按键,而高于127的值表示按键。那你就不用中断了。
我建议QBASIC首先尝试以更高级的语言从0x60h端口获取输入。然后,您将可以在asm中快速编写解决方案。
别忘了让您退出程序的可能性,例如按Esc键,按下该键将给出值1,否则您将需要重新引导系统以重新获得对系统的控制权。