讲到这儿,咱们仍然关于计算机呼应中止感到奇特,咱们人能够呼应外界的事情,是由于咱们有多种“传感器“――眼、耳能够承受不同的信息,计算机是怎么做到这点的呢?其实说穿了,一点都不希奇,MCS51作业时,在每个机器周期中都会去查询一下各个中止符号,看他们是否是“1“,假如是1,就阐明有中止请求了,所以所谓中止,其实也是查询,不过是每个周期都查一下罢了。这要换成人来说,就相当于你在看书的时分,每一秒钟都会抬起头来看一看,查询一下,是不是有人按门铃,是否有电话很蠢,不是吗?可计算机原本便是这样,它底子没人聪明。
了解了上述中止的进程,就不难解中止呼应的条件了。在下列三种状况之一时,CPU将封闭对中止的呼应:
1、CPU正在处理一个同级或更高等级的中止请求。
2、现行的机器周期不是当时正履行指令的最终一个周期。咱们知道,单片机有单周期、双周期、三周期指令,当时履行指令是单字节没有关系,假如是双字节或四字节的,就要等整条指令都履行完了,才干呼应中止(由于中止查询是在每个机器周期都或许查到的)。
3、当时正履行的指令是回来批令(RETI)或拜访IP、IE寄存器的指令,则CPU至少再履行一条指令才应中止。这些都是与中止有关的,假如正拜访IP、IE则或许会开、关中止或改动中止的优先级,而中止回来指令则阐明本次中止还没有处理完,所以都要等本指令处理完毕,再履行一条指令才干够呼应中止。