• 指路老师的博客

    • 键盘的每一个键相当于一个开关,键盘中有一个芯片对键盘的每一个键的开关状态进行扫描
    • 按下一个键的操作
      • 开关接通,该芯片就产生了一个扫描码,扫描码说明按下的键在键盘的位置
      • 扫描码被送入主板的相关接口芯片的寄存器中,该寄存器的端口地址为60H
    • 松开按下的键时的操作
      • 产生一个扫描码,扫描码说明了松开的键在键盘的位置
      • 松开按键时产生的扫描码也被送入60H端口号中
    • 扫描码——长度为一个字节的编码
      • 按下一个单间产生的扫描码——通码,通码第七位为0
      • 松开一个按键时产生的扫描码——断码,断码第七位为1
      • g键的通码为22H断码为A2H
      • 通码 + 80H = 断码
      • 字符键,控制键,切换键
  1. 引发9号中断
    • 键盘输入到达60H端口时,相关的芯片就会向CPU发出中断类型码为9的可屏蔽中断信息
    • CPU检测到该中断信息后如果IF = 1则响应中断引发中断过程转去执行int 9中断例程
  2. 执行int 9中断例程
  • 输入的字符键值如何保存

    • 有 BIOS键盘缓冲区
    • BIOS键盘缓冲区:是系统启动后,BIOS用于存放int 9中断例程所接收的键盘输入内存区
    • 可以存储15个键盘输入,一个键盘输入用一个字单元存放,高位字节放扫描码,低位字节放字符码ASC
    • 输入控制键和切换键
  • BIOS提供中提供的处理键盘码输入的int 9中断例程处理工作
    • 读出60H端口中的扫描码
    • 根据扫描码分情况对待
      • 如果是字符键的扫描码,将扫描码和它对应的字符码送如内存BIOS键盘缓冲区
      • 如果是控制键(ctrl)和切换键(capslock)的扫描码则将其转变为状态字节(用二进制位记录控制键和切换键状态的字节)写入内存单元存储状态字节的单元
  • 键盘输入的处理过程
    • 检测中断码
    • 1E送入到数据缓冲区
  • 通过查表得到61放入数据缓冲区

    • 送到键盘缓冲区

贺利坚老师汇编课程73笔记:键盘输入的处理过程相关推荐

  1. 贺利坚老师汇编课程40笔记:指令里的数据在哪里有多长

    指路老师的博客 汇编中数据位置的表达 立即数 寄存器 内存:段地址SA+偏移地址EA 指令处理数据长度 字操作WORD16位 字节操作BYTE8位 用word ptr或byte ptr指明 示例 操作 ...

  2. 贺利坚老师汇编课程28笔记:使用附加段寄存器ES进行拷贝

    指路老师的博客链接 将内存FFFF:0 ~ FFFF:B中的数据拷贝到0:200~0:20b单元中 段地址每循环一次变一次的初始方案 ;初始方案 ASSUME CS:CODE CODE SEGMENT ...

  3. 贺利坚老师汇编课程70笔记:端口的读写

    指路老师的博客 端口对应外部设备 发声程序 assume cs:codecode segment start:mov al,08h;设置声音频率out 42h,alout 42h,alin al,61 ...

  4. 贺利坚老师汇编课程66笔记:自定义除法中断学习如何编制中断程序

    指路老师的博客 CPU随时可能检测中断信息,所以中断程序常驻内存(一直存储在内存的某段空间中) 中断处理程序的入口地址,即中断向量,必须存储在中断向量表的表项中 (0000:0000 - 0000:0 ...

  5. 贺利坚老师汇编课程61笔记:操作显存数据即在屏幕上显示

    指路老师的博客 屏幕上内容 = 显存数据 B8000H~BFFFFH共32K空间时80 * 25(25行80列)彩色字符模式,第0页的显示缓冲区 编程序在屏幕的中间,白底蓝字,显示"Welc ...

  6. 贺利坚老师汇编课程60笔记:逻辑移位指令shl和shr

    指路老师的博客 逻辑左移 SHL OPR,CNT 将OPR逻辑左移CNT位 将寄存器或内存单元中的数据向左移位 将最后移出的一位写入CF 最低位用0补充 移动位数大于1时必须用CL MOV AL,01 ...

  7. 贺利坚老师汇编课程57笔记:CMP和JXXX配合实现条件转移指令if

    指路老师的博客 实现分支程序设计 套路 CMP OPER1,OPER2;或者其他影响标志寄存器的指令 JXXX 标号 恐惧 JXXX系列指令和CMP指令配合,构造条件转移指令 不必考虑CMP指令对相关 ...

  8. 贺利坚老师汇编课程56笔记:CMP指令

    指路老师的博客 CMP 操作对象1,操作对象2;计算操作对象1-操作对象2 CMP是比较指令,功能相当于减法指令,只是不保存结果 CMP指令执行后,将对标志寄存器产生影响 其他指令通过识别这些被影响的 ...

  9. 贺利坚老师汇编课程55笔记:带借位减法指令SBB

    指路老师的博客 SBB是带借位的减法格式,利用CF位上记录的借位值 SBB AX,BX;(AX) = (AX)-(BX)-CF 对任意大的数进行减法运算 003E 1000H - 0020 2000H ...

最新文章

  1. 【读书笔记】iOS-属性列表
  2. .NET Core 下使用 RabbitMQ
  3. 第67课 选择排序 例67.1 《小学生C++编程入门》
  4. ArcSDE工作机制
  5. python实战1.0——爬取知乎某问题下的回复
  6. 文献管理与信息分析_全球酒店PMS行业市场现状分析,酒店信息管理全链条的灵魂...
  7. web服务器、Apache 和 tomcat 的关系
  8. 简易的Python小游戏
  9. [硬件技术] 教你如何挑选主板:电脑主板质量好坏的鉴别方法
  10. 博士申请 | 西湖大学智能无人系统实验室招收空中机器人方向全奖博士生
  11. 屏幕显示密度dpi_手机屏幕尺寸,分辨率,密度,dpi,dip,px,sp等详解
  12. 商业模式和盈利模式的区别是什么?
  13. Ionic3.x 创建项目中的问题-IonIC start myApp tabs
  14. Oauth 第三方授权登陆 facebook google twitter instagram
  15. 七夕节 看到很多停止更新的blog 莫名有点淡淡的忧桑
  16. 设计模式之美读书笔记
  17. DataX系列8-HdfsWriter介绍
  18. Camera知识问答
  19. Windows 网络管理命令
  20. ACPI相关(10)- Platform Communications Channel

热门文章

  1. linux ssh客户端乱码,Win10专业版下Open ssh客户端乱码咋办?
  2. createbitmap 旋转90度_如何旋转的位图90度
  3. 网页特效offset、client、scroll系列属性的作用
  4. FFmpeg源代码简单分析:libavdevice的gdigrab
  5. 最简单的视音频播放示例8:DirectSound播放PCM
  6. 我的开源项目:FLV封装格式分析器
  7. linux md5接口,md5-linux_shell(示例代码)
  8. dbf文件mysql,dbf文件怎么打开?dbf是什么文件?
  9. python的整除运算_Python3基础 ** 幂运算 // 整除运算
  10. PowerDesigner导出SQL脚本运行注释出现乱码问题