是CPU进入中断周期后自动关中断,为了让主程序和中断服务程序能够处理中断与中断嵌套都要安排开中断指令。
中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行。
CPU进入中断周期后,由中断隐指令自动将使能全局中断标志位置零,即关中断,这就意味着CPU在执行中断服务程序中禁止响应新的中断请求。CPU若想再次响应中断请求,必须开中断,这一任务通常由中断服务程序中的开中断指令实现。
扩展资料:
中断源屏蔽处理的相关技术:
当中断源被屏蔽(屏蔽触发器mask=1),此时即使完成触发器D=1,中断查询信号到来时刻只能将中断请求触发器INTR置“0”,CPU接收不到该中断源的中断请求,即它被屏蔽。
若该中断源未被屏蔽(mask=0),当设备工作已完成时(D=1),中断查询信号则将INTR置“1”,表示该中断源向CPU发出中断请求,该信号送至排队器进行优先级判断。
为了保证级别低的中断源不干扰比其级别高的中断源的中断处理过程。可采用屏蔽技术。
参考资料来源:百度百科-可屏蔽中断标志
参考资料来源:百度百科-中断嵌套
数据都是共享的,没有所谓返回一说.比如你在中断子程序内修改了VD0,那么这个VD0就是被实实在在的修改了.但是要注意临时变量区,寄存器区等都会在返回程序断点时恢复到以前的值,比如你在主程序内如下 *** 作:LDSM0.1MOVD1234,AC1LDD=AC1,1234=Q0.0然后你在中断子程序内即使更改了AC1的值,比如更改为AC1=0,那么返回到主程序后,AC1会自动恢复为1234,即Q0.0会一直导通...主程序只有一个,CPU在执行扫描的时候也只扫描这个程序,其他程序想要被扫描就必须在主程序里被调用。子程序就是主程序后面的程序,不会被主动调用。其他功能和主程序一样。
中断程序是一个功能块,让程序扫描过程中条件中断。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)