第17章 使用BIOS进行键盘输入和磁盘读写

来源:互联网 发布:操作系统linux移植 编辑:程序博客网 时间:2024/06/16 08:28

P302 键盘输入将引发9号中断,BIOS提供了 int 9 中断例程。
P303 int 16h 中断例程的0号功能,进行如下的工作。
(1) 检测键盘缓冲区中是否有数据;
(2) 没有则继续做第1步;
(3) 读取缓冲区第一个字单元中的键盘输入;
(4) 将读取的扫描码送入ah,ASCII码送入al;
(5) 将已读取的键盘输入从缓冲区中删除。
         BIOS的 int 9 中断例程和 int 16h 中断例程是一对相互配合的程序,int 9 中断例程向键盘缓冲区中写入,int 16h 中断例程从缓冲区中读出。它们写入和读出的实际不同,int 9 中断例程是在有键按下的时候想键盘缓冲区中写入数据;而 int 16h 中断例程是在应用程序对其进行调用的时候,将数据从键盘缓冲区中读出。
P310 实验17 编写包含多个功能子程序的中断例程
就这个程序,搞了好长时间,也还没有明白。现在只实现了写软盘的功能,而且还有限制。代码如下:

      我要写的是编号为1440的逻辑扇区。功能是向这个扇区中(512个字节)重复写入256个1324h。写到软盘中之后,使用hexedit查看如下图:

       今天太晚了,明天再写好了。

原创粉丝点击