汇编语言编写的交通灯程序,在遇到紧急情况进入外部中断结束时出错

问题遇到的现象和发生背景

要求遇到紧急情况时进入外部中断,东西与南北方向的红灯全亮,并且持续10秒,结束后返回中断前状态正常运行。但我的程序中断结束后会一直保持红灯状态,数码管也不会恢复之前的状态正常倒计时,想知道如何修改让它能够恢复终端前状态正常运行。

问题相关代码,请勿粘贴截图

img

img

img

img

X1 中断中,使用了 R1,R2,R5 ,并且这几个寄存器没压栈保护 PUSH POP
T0 中断中,使用了 R1 ,并且这个寄存器没压栈保护 PUSH POP
主程序中用了这些寄存器,中断时,破坏了这些寄存器,会使主程序运行错误。