本课程为汇编语言学习者提供专门设计的打字计时练习,旨在提高编程效率与代码输入速度,帮助学生熟练掌握汇编指令和语法。
设计内容:创建一个用于键盘打字练习并统计时间的程序。
设计思路:
1. 在DATA数据段预先设定一些在键盘上练习的例句及其地址表、计时单元等。
2. 自编中断程序kbint检测按键产生的中断,并将按键扫描码转换为ASCII码存入缓存区buffer。该过程类似于ROM09类型键盘中断例行程序的工作,但简化了对各种键(如组合键、双态键和功能键)的解释,仅处理可显示字符。
3. 主程序部分首先保存原有的09类型的中断向量,并设置自编例行程序的中断向量。接着设置中断屏蔽位并开启中断。
4. 当键盘中断处理完成后,主程序从缓冲区中读取字符并在屏幕上显示出来。
5. 主程序结束时通过DOS功能恢复原09类型中断向量,并返回到DOS环境。
6. 在输出键入的字符过程中还需判断是否为回车符(ASCII码值为0DH)。若输入了回车,表示一个句子已输入完毕,此时调用显示时间子程序来展示打字所花费的时间。接着顺序显示下一个例句直到所有存放好的例句都显示完之后再从第一个开始循环。
7. 打字时间统计通过自定时器中断处理程序clint实现:每次完成一整句话的录入后进行一次计时操作,该子程序中利用count单元记录定时器中断次数。当count值达到18次,则sec(秒)计数单元加1;而当sec值累计到60时则min(分钟)计数单位会增加。
8. 显示时间的子程序disptime将各计数值转换为十进制形式,以“mm:ss:ms”的格式在屏幕上显示出来。