核算机根底之打印显现
标题当运用键盘输入一句“你好,在吗”,如何在屏幕上显现出来的。
1)首先知道一下键盘的构成;6位的计数器经过两个八选一译码器对键盘进行扫描 在键盘没有任何按键时,扫描随着计数器的循环计数反复进行。
能够这么想,扫描便是一束光线,当没有键被按下时,光线能够横穿过键盘的任何方位。
2)若有键按下,扫描会发现该信号(键被按下今后挡住了光线的横穿),该信号使计数器停止计数,将扫描码发送给 8042。
每一个键的方位都用一组数字表明,这组数字便是所谓的扫描码。
你或许好奇,扫描码怎么就传给8042了? 其实特简略,便是直接用电路联通的。
3)8042将该扫描码放在缓冲区中,并告诉8259A产生了中止。
缓冲区巨细为1byte,假如此刻键盘又有新的键按下,8042将不再接收,一向比及缓冲区被整理。
4)8259A识别出键盘中止,将cpu的中止寄存器的特定方位为1。
注意到目前为止cpu一向再执行其它程序或许闲暇,底子还对键盘按下的事件没做任何反应。虽然描述的比较复杂,但这个进程其实特快。
5)接下来便是典型的中止处理进程了。 cpu执行完一条指令后,发现有中止存在,进入中止周期,经过IDT的映射将其处理交给键盘处理程序。
6)键盘处理程序第一步便是从8042的缓冲区(仅有一个字节)将该扫描码移动到键盘缓冲区(链表完成的 巨细可调整,太大了也没什么用),此刻能够接受下一个字符按键了。
7)若键盘缓冲区非空,则开端处理这些按键码,首先将扫描码转换为ASCII码
若是可打印字符如a 则将其显现
其他功用键做相应处理。
最后便是显现的进程了:
可经过bios调用或许写显存完成。
1 将该字符的ASCII码加上一些属性(如色彩控制,最简略的rgb,此刻只要最纯的rgb三种色彩及其叠加的组合共8种),这些属性也是由01表明的,0代表无,1代表有 放入显存中(集显便是内存中的特定方位 )。
2 字符发生器,经过读这个特定方位的数据,将ASCII码及其属性信息转换为一个光点矩阵,1表明有光。
字符发生器实践是一个rom,用映射的功用完成这种转换。
如ASCII = 65, 字符发生器会把其转换为a的光点矩阵,色彩由后边的3把枪控制。
3 该光点矩阵能够作为显现器的输入信号。每个点都有3把电子枪发射(别离发rgb)的光叠加成的。
总结起来便是:键盘有个键盘控制芯片,时时刻刻都在检测经过键盘的电流变化,假如有键盘按下,控制芯片会反馈给相应的中止程序,中止程序反应给CPU,CPU会把之前所做的一些任务停下,在晶振电路的控制下,经过相关的程序从内存或许I/O中读取出数据来,然后在CPU的内部进行一系列的二进制的核算,输入到内存或I/O中,最后经过GUI来完成字符的显现。