中断程序通常在以下情况下结束:
中断服务程序执行完毕:
当中断服务程序执行完毕后,CPU会返回到被中断的主程序继续执行。这个过程称为中断返回。
定时器中断:
对于定时器中断,中断程序从计数值溢出开始产生,直到执行中断响应程序开始为止。需要注意的是,中断响应程序执行完成后,可能需要根据寄存器里的值进行调整,以补偿中断处理程序消耗的时间。
外部中断:
外部中断通常由外部设备触发,当满足中断条件时,CPU会响应中断并执行相应的中断程序。中断程序执行完毕后,CPU同样会返回到主程序继续执行。
综上所述,中断程序的结束主要取决于中断服务程序的完成或定时器计数的溢出,并且在中断响应程序执行完成后,可能还需要进行一些调整以补偿处理程序消耗的时间。