奎克的藏经阁 · 原书印刷页

编码 隐匿在计算机软硬件背后的语言 · 第 350 页

PDF 物理页索引 366 · 编码隐匿在计算机软硬件背后的语言

书名
编码 隐匿在计算机软硬件背后的语言
作者
未记录
印刷页
350
PDF 物理页
366(从 0 开始)
章节
编码隐匿在计算机软硬件背后的语言
UUID
38270854-596f-4a26-8183-db8c968c6020
来源类型
original_book
页面 SHA-256
977cba5469ef7875a750df354bc0ade6e434114bf530454a89f67a40df0955da

键盘处理程序的规模要远大于初始化代码,这个程序才是真正响应键盘事件的代码段。

任何时候,只要键盘上的一个按键被按下,微处理器就会响应本次中断,并从初始化代码末尾的HLT语句跳转到键盘处理程序。键盘处理程序利用IN(Input)指令用来检查是哪个按键被按下,并根据这个按键执行相关的操作(就是说,键盘处理程序对每个按键进行相应的处理),然后执行RET(Retur)指令以返回HLT语句,等待另一个键盘中断。

当你按下字母、数字或者是标点符号键的时候,键盘扫描程序就会启用键盘扫描码并根据Shift键是按下与否确定相应的ASCI码。接下来我们要做的,就是要把这个ASCI码写到视频显示器的内存中,当然这不是随意的,而是要写在光标所在的位置。这样的一个过程,我们可以很形象地称之为按键到显示器的回显(echoing)。光标会随着字符的写入而移动,换言之,它总会出现在刚显示的字符后面的空格处。通过键盘,可以输入一串字符,然后把它们在屏幕上显示出来。

当按下回退键(相应的ASCII码值是08h)时,最后写入视频显示器内存中的字符会被键盘处理程序删除(其实并不复杂——我们只要把空格符对应的ASCI码—20h写入到那个内存位置处就行了)。在这个过程中,光标会移回一格。

通常我们在输入一行字符时,错误是难免的,这时就需要用退格键来改正错误,然后按下回车键。回车键并不难找到,键盘上标有“Enter”字样的按键就是。打字员在电动打字机上按下“Return”键表示已经完成一行文字的输入,同时也表明他们已经做好了输入下一行的准备,光标会指向下一行的开始。同样,在计算机中“Enter”键用来实现相同的功能,结束一行的输入并转到下一行。

当键盘处理程序对“Return”或“Enter”键(对应的 ASCII码是0Dh)进行处理时,它把视频显示器内存中的这一行文本解释为计算机的一条命令(command),换言之,键盘处理程序的任务是执行此命令。实际上,在键盘处理程序内含有一个命令处理程序(command processor),它可以解释如下三条命令:W命令、D命令和R命令。下面我们来深入地理解一下它们。

首先是W命令。它是以W开头的文本行,此命令用来把若干字节写入(Write)到内存中。例如输入到屏幕上的一行内容如下所示:

W 1020 35 4F 78 23 9B AC 67

编码隐匿在计算机软硬件背后的语言

350