当前位置: 首页 > news >正文

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

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

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的后续操作即可。如下两图

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【科大讯飞笔试题汇总】2024-07-27-科大讯飞秋招提前批(研发岗)-三语言题解(Cpp/Java/Python)
  • 数据结构:单链表的实现
  • 大疆创新2025校招内推
  • LeeCode Practice Journal | Day25_Backtracking04
  • iOS 创建一个私有的 CocoaPods 库
  • Python3网络爬虫开发实战(2)爬虫基础库
  • Csrf复习(pikachu靶场和防御手段)
  • Linux——手动清理内存缓存
  • CSS、less、 Sass、
  • 前端canvas——赛贝尔曲线
  • Android笔试面试题AI答之Android系统与综合类(1)
  • 面试问题记录:
  • 技术实践—微前端技术应用
  • 秋招突击——7/24——知识补充——JVM类加载机制
  • iPhone 17系列取消17 Plus版本?新一代苹果手机迎来新变革
  • Akka系列(七):Actor持久化之Akka persistence
  • Android Volley源码解析
  • ES6之路之模块详解
  • Flannel解读
  • js数组之filter
  • js写一个简单的选项卡
  • Vue 重置组件到初始状态
  • Web标准制定过程
  • 分布式熔断降级平台aegis
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 经典排序算法及其 Java 实现
  • 看域名解析域名安全对SEO的影响
  • 两列自适应布局方案整理
  • 浅谈Golang中select的用法
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • #LLM入门|Prompt#3.3_存储_Memory
  • (4)Elastix图像配准:3D图像
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (算法)前K大的和
  • (五)activiti-modeler 编辑器初步优化
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .bashrc在哪里,alias妙用
  • .DFS.
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用框架
  • .Net 应用中使用dot trace进行性能诊断
  • .Net 中Partitioner static与dynamic的性能对比
  • .Net程序帮助文档制作
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .net中应用SQL缓存(实例使用)
  • ;号自动换行
  • @RestController注解的使用
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器