问题描述
我想根据以下条件使用中断来减慢程序速度:
- 如果我按下键盘上的向上箭头,速度将会提高
- 如果我按下键盘上的向下箭头,速度将会降低
我想通过使用中断来完成:如果速度降低,我将屏蔽更多中断,如果速度提高,我将屏蔽中断。
我知道如何到达键盘中断以及屏蔽和取消屏蔽中断。
我只是不知道如何达到程序速度。
我正在用C和汇编语言编写代码。
解决方法
您可以做的一件事情是拦截之一,例如大约18的BIOS时钟滴答int 08h
或(更好)MS-DOS int 1Ch
处理程序。赫兹。然后基于由某些键盘事件控制的变量添加浪费时间的循环。
确保在每次延迟之前重新启用中断。
在程序结束时,您将负责恢复原始中断向量。
在不调整仿真的情况下,程序的加速不能超过其启动速度。