应该是BIOS的16H中断的1号功能,调用该中断是不等待的,它是读键盘缓冲区中的内容的.使用方法如下: mov ah,1 int 16h 返回码如下: ZF=1时:键盘缓冲区为空,即以前没有输入; ZF=0时:键盘缓冲区中有内容,并返回当前键盘指针所指的输入值: AL=字符码(ASCII) AH=扫描码. 返回该AX值后,键盘指针没有移到下续单元.下次再调用时还是返回这一个输入值.所以必须与INT 21H配合使用.下面提供一个子程序: ;========================================== kbtest proc near mov ah,1 int 16h jnz kbtest_1 mov ax,0ffh stc ret ;没有内容自动返回 kbtest_1: mov ah,7 int 21h mov ah,0 cmp al,0 jnz kbtest_2 ;输入的是ASCII码(AL) mov ah,7 int 21h ;取扩展ASCII码(非字符码的功能键) mov ah,1 clc kbtest_2: ret kbtest endp ;================================== 子程序的返回值如下: CF=1时:无输入; CF=0且AH=0时:AL=输入的ASCII码(字符码); CF=0且AH=1时:AL=输入的扩展ASCII码(功能键) 如果你想使用扫描码的话,只要将该子程序改一下就可以了.但一般情况下使用扩展ASCII,因为通用性强.