TA的每日心情 | 怒 2019-11-20 15:16 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
讲到这儿,我们依然对于计算机响应中断感到神奇,我们人可以响应外界的事件,是因为我们有多种“传感器“――眼、耳可以接受不同的信息,计算机是如何做到这点的呢?其实说穿了,一点都不希奇,MCS51工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是“1“,如果是1,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话很蠢,不是吗?可计算机本来就是这样,它根本没人聪明。
( ]. Q: @- [, C* y) `$ i5 ]+ T i4 J/ q$ X) i, D& ~1 `
" l$ k4 P0 X/ ~4 ]
" r3 i+ Y3 G S8 R) |' o' X了解了上述中断的过程,就不难解中断响应的条件了。在下列三种情况之一时,CPU将封锁对中断的响应:
( k+ K' {5 a0 ?
2 I# X- _" Y, k: N- T2 K& b! ]0 `" l1、CPU正在处理一个同级或更高级别的中断请求。7 ]" M q$ [- W/ d0 c; D
# N7 e( q; Y, H1 i2、现行的机器周期不是当前正执行指令的最后一个周期。我们知道,单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的)。
- t- }; l8 z: K5 o! z5 e) x" S" y1 i7 E( P" q/ L& [
3、当前正执行的指令是返回批令(RETI)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才应中断。这些都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才可以响应中断。0 h [$ e. w' U! `1 r2 n
8 R. }& \: {1 c4 W4 G |
|