转自https://zhidao.baidu.com/question/233998859.html
键盘I/O中断调用有三个功能,功能号为0, 1, 2,且必须把功能号放在AH中。
(1)0号功能调用 格式:MOV AH, 0
INT 16H
功能:从键盘读入字符送AL寄存器。执行时,等待键盘输入,一旦输入,字符的ASCII码放入AL中。若AL=0,则AH为输入的扩展码。
(2)1号功能调用
格式:MOV AH, 01H
INT 16H
功能:用来查询键盘缓冲区,对键盘扫描但不等待,并设置ZF标志。若有按键操作(即键盘缓冲区不空),则ZF=0,AL中存放的是输入的ASCII码,AH中存放输入字符的扩展码。若无键按下,则标志位ZF=1。
(3)2号功能调用
格式: MOV AH, 02H
INT 16H
功能:检查键盘上各特殊功能键的状态。执行后,各种特殊功能键的状态放入AL寄存器中,
这个状态字记录在内存0040H:0017H单元中,若对应位为“1”,表示该键状态为“ON”,处于按下状态;若对应位为“0”,表示该键状态为“OFF”,处于断开状态。
【例4.46】
MOV AH, 02H
INT 16H ; 取键盘状态到AL中
AND AL, 0000 0100B ; 检查Ctrl键是否按下
JNZ CTRL-ON
CTRL-ON: …
检查Ctrl键是否按下,若按下,则控制转移到某个程序段执行