比如在ob1执行
L MD0
L MD4
----------
+R
那么我们知道这个时候累加器1/2的值分别为md4和md0.
那么当其他的中断需要执行的时候,假如刚好在划线那里执行了其他ob的程序,并且修改了累加器的值。那么切换回来ob1的时候,累加器的值是如何恢复的?
这个问题,建议你看一下 “堆栈” 的工作原理。在发生中断的时候,CPU 先把寄存器内的值推入 堆栈。等到中断返回的时候,再把 堆栈中保存的值 再重新调入 各个寄存器,继续执行程序。
比如在ob1执行
L MD0
L MD4
----------
+R
那么我们知道这个时候累加器1/2的值分别为md4和md0.
那么当其他的中断需要执行的时候,假如刚好在划线那里执行了其他ob的程序,并且修改了累加器的值。那么切换回来ob1的时候,累加器的值是如何恢复的?
这个问题,建议你看一下 “堆栈” 的工作原理。在发生中断的时候,CPU 先把寄存器内的值推入 堆栈。等到中断返回的时候,再把 堆栈中保存的值 再重新调入 各个寄存器,继续执行程序。