在实模式组装中,我使用此代码:
mov ah, 0h
int 0x16
等待键盘输入。我知道当按下一个键时,我按下的键的信息存储在ah和al寄存器中。例如,当我按下ENTER时,0x0D将存储在al寄存器中。如果我按退格键,那将是0x08。但这些是我所知道的唯一两个关键。
是否有所有键盘键的列表?例如,当我按'a'时,al / ah值是多少? (ASCII表没有关于此的信息。)
答案 0 :(得分:3)
来自RBIL:
键盘 - 获得钥匙扣
AH = 00h
返回:
AH = BIOS扫描码
AL = ASCII字符
ah
将包含键盘扫描码和al
ASCII字符。
每个键都有两个扫描码(按下并释放)。它由键盘控制器返回,进一步的抽象层提供从扫描码到特定字符集(例如ASCII)的映射,因此用户可以操作字符集值。
可以找到扫描码列表here(感谢@MichaelPetch)。但是,扫描码与IBM PC一起发展,因此有多组扫描码,它们部分兼容。如果您使用扫描码,请注意您使用的扫描码类型。
对于未来的问题,请先查看Ralph Brown's Interrupt List (RBIL) - 那里的好东西。