引言

大多数有用的程序都需要处理用户的输入,家农安的输入是最基本的输入

程序和数据通常需要长期存储,磁盘是我们常用的存储设备。BIOS为这两种外设的I/O提供了最基本的中断例程

1.int 9 中断例程对键盘输入的处理

CPU在9号中断发生后,执行int 9 中断例程,从60H端口读出扫描码,并将其转化为相应的SCII码或状态信息,存储在内存的指定空间【键盘缓冲区或状态字节】种

所以,一般的键盘输入,在CPU执行完int 9 中断例程后,都放到了键盘缓冲区中

2.使用int 16h中断例程读取键盘缓冲区

BIOS提供了int 16h 中断例程供程序员调用

int 16h 中断例程中包含的一个最重要的功能是从键盘缓冲区中读取一个键盘输入,该功能的编号为0

下面的指令从键盘缓冲区中读取一个键盘输入,并将其从缓冲区删除

1
2
3
4
mov ah,0
int 16h
结果:
(ah)=扫描码,(al)=ASCII码

int 16h 中断例程的0号功能

1
2
3
4
5
1.检测键盘缓冲区中是否有数据
2.没有则继续做第一步
3.读取缓冲区第一个字单元中的键盘输入
4.将读取的扫码送入ah,ASCII码送入al中
5.将已读取的键盘输入从缓冲区中删除

所以 int 9和int 16h中断例程是一对相互配合的程序,int 9中断例程向键盘缓冲区写入,int 16h中断例程从缓冲区中读出

它们写入和读出的时机不同,int 9 中断例程在有健按下的时候向键盘缓冲区写入数据

而int 16h中断例程是在应用程序对其进行调用的时候,将数据从键盘缓冲区读出来

3.字符串的输入