进入中断处理程序时,我们首先在该CPU上“禁用中断”(例如,在x86上使用cli指令)。在中断被禁用的时间内,假设用户按下了键盘上的字母‘a’,通常会引起中断。但由于中断被禁用,这意味着:
- 在关键部分禁用中断后,'a'的中断处理程序将永远不会被调用?
- 中断将由操作系统处理,但会被延迟,直到再次启用中断。具体而言,如果用户第一次按下'a'是在中断被禁用时,那么他是否需要再次按下'a'?
进入中断处理程序时,我们首先在该CPU上“禁用中断”(例如,在x86上使用cli指令)。在中断被禁用的时间内,假设用户按下了键盘上的字母‘a’,通常会引起中断。但由于中断被禁用,这意味着:
STI
以启用中断。在中断的正常处理过程中,用户按两次“a”是物理上不可能的。即使他同时按下两个键,这也极不可能发生,但硬件应该至少保持一个键,直到CPU准备好获取它。
在PC上——这是回到我使用PCXT的日子——键盘子系统可以为CPU保留大约13个按键。
禁用中断有不同的证明。 1.硬件故障 2.异常 {例如:除以零} 等等。
或者例如:对于I/O设备。 如果没有中断,计算机效率就不高!
WASD
和箭头键执行相同操作。 - yyny