键盘是如何使用中断机制的?当打印一串字符到显示屏上时发生了什么???

avatar
作者
猴君
阅读量:0

当在键盘上按下一个键时会进行一下操作:

1.当按下任意一个键时,键盘编码器监控会来判断按下的键是哪个

2.键盘控制器用将解码,将键盘的数据保存到键盘控制器里数据寄存器里面

3.此时发送一个中断请求给中断控制器,中断控制器获取到中断号发送给CPU

4.cpu通过中断向量表(在操作系统初始化形成)来找到键盘服务程序的内存地址,此时cpu的程序计数器直接跳转到键盘中断程序。

5.在进行新程序时需要保存上个程序寄存器的一些值,以便于下次继续进行以前的操作

6.键盘中断服务程序一定存在于操作系统程序中,因为会进行in或者out等内核操作。

7.IN EAX  0x03FA    将0x03FA对应的键盘控制器的寄存器的值读取到CPU的 EAX中, OUT   0x06B1    EAX  将EAX的值写到显示控制器中0X06B1对应的寄存器中从而显示到屏幕上。

 当打印完后需要响应一次中断,之后CPU还需要将内存的打印字符再送到打印机的寄存器中,会极大浪费cpu的开销。此时加入一个DMA机制来缓解CPU的的开销,将数据移动的任务交给DMA,只需要在所有打印任务完成之后触发一次中断,最后恢复应用程序1的后续操作即可。如下两图

 

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!