引言

  • 以前我们讨论的都是CPU对指令的执行。CPU在计算机系统中国,出了能够执行指令,进行运算以外,还英嘎inenggou对外部设备进行控制,接受它们的输入,向他们进行输出。
  • CPU出了有运算能力,还要有I/O能力。
  • CPU通过端口和外部设备进行联系。

    外中断信息

  • 外中断源一共有两类:

    • 可屏蔽中断
    • 不可屏蔽中断
  • 可屏蔽中断是CPU可以不响应的外中断。CPU是否响应可屏蔽中断,要看标志寄存器的IF位的设置。
  • sti:IF=1
  • cli:IF=0
  • 不可屏蔽中断的中断过程:

    • 标志寄存器入栈,IF=0,TF=0
    • CS、IP入栈
    • (IP)=(8),(CS)=(0AH)

      PC机键盘的处理过程

  • PC机处理外设输入的基本方法。

    • 键盘输入
    • 引发9号中断
    • 执行int 9中断例程
  • 键盘上的每一个键相当于一个开关,键盘中有一个芯片对键盘上的每一个键的开关状态进行扫描。
  • 按下一个键,芯片产生一个扫描码,扫描码说明按键的位置。扫描码送入相关接口芯片的寄存器中,该寄存器的端口地址为60H。
  • 松开按键,也会产生一个扫描码。松开屎产生的扫描码也被送入60H端口中。
  • 按下称通码,松开成为断码。
  • 通码第七位为0,断码第七位为1:断码=通码+80H
  • BIOS提供了int 9中断过程,用来进行基本你的键盘输入处理。
    • 读60H端口中的扫描码
    • 将扫描码装换成字符码(ASCII)送入内存中的BIOS键盘缓冲区
  • 一次显示“a”~“z” ``` code segment start:

    1. mov ax,0b800h
    2. mov es,ax
    3. mov ah,'a'
    4. xor si,si

    s: mov es:[16012+402+si],ah

    1. inc ah
    2. add si,2
    3. cmp ah,'z'
    4. jna s
    5. mov ax,4c00h
    6. int 21h

code ends end start
```