实模式组装获取键盘输入

时间:2016-11-20 16:36:09

标签: assembly keyboard bios real-mode

在实模式组装中,我使用此代码:

mov ah, 0h int 0x16

等待键盘输入。我知道当按下一个键时,我按下的键的信息存储在ah和al寄存器中。例如,当我按下ENTER时,0x0D将存储在al寄存器中。如果我按退格键,那将是0x08。但这些是我所知道的唯一两个关键。

是否有所有键盘键的列表?例如,当我按'a'时,al / ah值是多少? (ASCII表没有关于此的信息。)

1 个答案:

答案 0 :(得分:3)

来自RBIL

  

键盘 - 获得钥匙扣

     

AH = 00h

     

返回:
  AH = BIOS扫描码
  AL = ASCII字符

ah将包含键盘扫描码和al ASCII字符。

每个键都有两个扫描码(按下并释放)。它由键盘控制器返回,进一步的抽象层提供从扫描码到特定字符集(例如ASCII)的映射,因此用户可以操作字符集值。
可以找到扫描码列表here(感谢@MichaelPetch)。但是,扫描码与IBM PC一起发展,因此有多组扫描码,它们部分兼容。如果您使用扫描码,请注意您使用的扫描码类型。

对于未来的问题,请先查看Ralph Brown's Interrupt List (RBIL) - 那里的好东西。