CPU可以直接读写以下3个地方的数据:
1.CPU内部的寄存器
2.内存单元
3.端口
端口读写的的指令只有两条: in 和 out
外中断
CPU除了有运算能力外汇,还要有I/O(Input/Output,输入输出)能力。
比如,我们按下键盘上的一个键,CPU最终要能够处理这个键。
在使用文本编辑器时,按a键,我们可以看到屏幕上出现"a',是CPU将
从键盘上输入的键所对应的字符送到显示器上的。
PC机键盘的处理过程。
1.键盘输入
当按下一个键时,开关接通,键盘中一芯片产生一个扫描码,送入主板上的
相关接口芯片寄存器中,该寄存器的端口地址为60h.
当松开按下的键时,也产生一个扫描码,松开一个键产生的扫描码为断码,
扫描码长度为一个字节,通码的第7位为0,断码的第7位为1,即:
断码 = 通码 + 80H
2.引发9号中断
键盘的输入到达60h端口时,相关的芯片就会向cpu发出中断类型码为9的可
屏蔽中断信息。CPU检测到该中断信息后,如果IF=1,则响应中断,引发
中断过程,转去执行int9中断例程。
3.执行int9中断例程。
BIOS提供了int 9中断例程,用来进进行基本的键盘输入处理,主要的工作如下:
a.读出60h端口中的扫描码.
b.如果是字符键的扫描码,将该扫描码和它所对应的字符码(即ascii码)送入内存
中的bios键盘缓冲区,如果是控制键(Ctrl)和切换键(如CapsLock) 的扫描码,
则将其转变为状态字节(用二进制位记录控制键和切换键状态的字节)写入内存中存储
状态字节的单元。
c.对键盘系统进行相关的控制,比如,向相关芯片发出应答信息。