ITEEDU

5、BIOS中的键盘输入

在BIOS系统中,提供了中断16H来实现键盘输入功能。其具体的功能如下:

00H、10H——从键盘读一个字符,输入字符不回显

01H、11H——判断键盘缓冲区内是否有字符可读

02H——读取当前键盘状态字

有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之键盘服务。

6、直接操作端口的键盘输入

由表8.1可知:键盘输入端口的地址为60H,所以,我们可以用指令IN从该端口读取当前按键的扫描码。

例如:

 MOV DX, 60H 
  IN   AL, DX

7、键盘输入的举例

例8.1 用键盘最多输入10个字符,并存入内存变量Buff中,若按“Enter”键,则表示输入结束。

解:

1、方法1

.MODEL SMALL

CR EQU 0DH ;定义“回车”键的符号名 

.DATA

Buff DB 10 DUP(?)

.CODE

.STARTUP

MOV CX, 0AH

LEA BX, Buff

.REPEAT

MOV AH, 0H

INT 16H? ;用BIOS中的中断功能 

.BREAK .IF AL==CR

MOV [BX], AL

INC BX

.UNTILCXZ

.EXIT?0

END
2、方法2
.MODEL SMALL

.DATA

Buff DB 10, ?, 10 DUP(?) ;注意缓冲区的定义方式 

.CODE

.STARTUP

LEA DX, Buff

MOV AH, 0AH

INT 21H ;用DOS中的功能调用 

.EXIT 0

END