henrywsnew 发表于 2013-6-5 09:13:21

键盘中断问题

在做王爽的汇编语言实验15碰到问题:
实验要求:安装一个新的int9中断例程,功能:在DOS下,按下A键后,除非不再松开,如果松开,就显示满屏幕的A,其它键照常处理。
在网上找到的答案中发现其中关键的一句是:cmp al, 1eh+80h,    1eh+80h为A的断码。

书上还有一个安装新的int9中断例程,功能是:在DOS下,按F1键后,改变当前屏幕的显示颜色,其它键照常处理。
其中的 一句是:cmp al,11是 F1的通码

两处相对照产生不解:
为什么一处是和通码比较,一处是和断码比较?

想请各位老师对键盘中断的详细过程描述一下,尤其是端口怎么处理键盘输入
书上说键盘在按下和松开时都产生一个扫描码,一个通码,一个断码,都送入60H端口中,键盘输入到达该端口时,产生中断类型码为9的中断信息
1.这句话中的键盘输入到底是指是什么?是指通码和断码吗?是通码到达端口就产生中断信息,还是断码到达产生中断信息?
2.那么此时读端口时,是先读出通码再读出断码吗?端口中能存放几个扫描码?
3,如果将int9中断例程更改,更改后的程序中有连续4个语句:in al, 60h,如果按下A键再松开,这时四个语句中的al 各是多少?

姗姗莱咫 发表于 2013-6-5 13:35:18

路过···············
页: [1]
查看完整版本: 键盘中断问题