15.3 PC机键盘的处理过程
1.键盘输入
键盘上的每一个键相当于一个开关,键盘中有一个芯片对键盘上的每一个键的开关状态进行扫描
按下一个键时,开关接通,该芯片就产生一个扫描码,扫描码说明了按下的键在键盘上的位置。扫描码被送入主板上的相关接口芯片的寄存器中,该寄存器的端口地址为60h
一般按下一个键产生的扫描码称为通码,松开一个键产生的扫描码称为断码。扫描码长度为一个字节,通码的第七位为0,断码的第七位为1:即
断码=通码+80h

2.引发9号中断
键盘的扫描码到达60h端口时,相关的芯片就会向CPU发出中断类型码为9的可屏蔽中断信息。CPU检测到该中断信息后,如果IF=1,则相应中断,引发中断过程,转去执行int9中断例程
3.执行int 9中断例程
BIOS提供了int 9中断例程,用来进行基本的键盘输入处理:
BIOS键盘缓冲区是系统启动后,BIOS用于存放int 9中断例程所接收的键盘输入的内存区。该内存区可以存储15个键盘输入,因为int 9中断例程除了接收扫描码外,还要产生和扫描码对应的字符码。所以在BIOS键盘缓冲区,一个键盘输入用一个字单元存放,高位字节存放扫描码,低位字节存放字符码
0040:17单元存储键盘状态字节,该字节记录了控制键和切换键的状态: