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

 

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

键盘缓冲区中有16个字单元,可以存储15个按键的扫描码和对应的入ASCII .

 

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

 

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

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

mov ah,0
int 16h

结果:(ah)=扫描码, (al)=ASCII码。

 

 

 

 

 

int 16h 中断例程的 0 号功能,进行如下的工作:

1)检测键盘缓冲区中是否有数据;

2)没有则继续做第1 步;

3)读取缓冲区第一个字单元中的键盘输入;

4)将读取的扫描码送入ahASCII 码送入al

5)将己读取的键盘输入从缓冲区中删除.

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

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

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

字符串的输入

 

字符串的存储空间实际上是一个字符栈.

字符栈中的所有字符,从栈底到栈顶,组成一个字符串.

 

应用int13h中断例程对磁盘进行读写