目录 上一页 下一页 下一章

-164- PC机汇编语言实战精解

  这一小段程序重新设定了队列指针并在缓冲区中填入了小写字母"r"和一个回车符,因此当这个程序结束后DEBUG就会取到这个"r"并把它当做命令来执行,于是屏幕上显示出所有寄存器的值。
  相对于键盘缓冲区而言,"键盘状态字"要简单得多,这是一个16位的数据,位于逻辑地址0040H:0017H处,各个位为1时的定义如图6-12所示:

图6-12 键盘状态字
  键盘状态字的变化可以用DEBUG来观察:
C:\ASM\>DEBUG[Enter]
-d40:17 18[Enter]
0040:0010                     00-00      ..
(按下Caps Lock)
-d40:17 18[Enter]
0040:0010                     40-00      @.
(再按下Scroll Lock)
-d40:17 18[Enter]
0040:0010                     50-00      P.
(再按下Insert)
-d40:17 18[Enter]
0040:0010                     D0-00      ..
-d40:17 18[Enter](按住左Shift不放,再按下Enter键)
0040:0010                     D2-00      ..
  由实验可知键盘状态字的Bit0-Bit3位反映了开关键的状态,而Bit4-Bit15是动态的,只在各键按下时设置,放开键后便重新发复位了。
  至此我们已经把键盘输入的情况大概讨论了一便,可以看到一个键由按下直至被应用程序收到大致经过了如图6-13所示的一个过程:
  通过这一节的学习,大家还可能会发现这样一个现象:我们所关心的一些重要的系统数据好象都放在了0040H段中,前面我们讨论定时的时候也提到过系统时钟计数值也位于40H段内,那么40H段究竟有什么不寻常的地方呢?
  其实40H段并没有什么不寻常之处,我们知道在启动PC时CPU首先执行ROM内的程序,这段程序用于完成系统的检测以及DOS的启动。这段程序运行时总要保存一些检测结果和一些临时

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章