portant; font-weight: normal !important; font-size: 14px !important;">不通的ob之间切换,累加器的值是如何保存的疑问
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); font-size: 12px; text-wrap: wrap; background-color: rgb(255, 255, 255);">比如在ob1执行
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); font-size: 12px; text-wrap: wrap; background-color: rgb(255, 255, 255);">L MD0
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); font-size: 12px; text-wrap: wrap; background-color: rgb(255, 255, 255);">L MD4
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); font-size: 12px; text-wrap: wrap; background-color: rgb(255, 255, 255);">----------
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); font-size: 12px; text-wrap: wrap; background-color: rgb(255, 255, 255);">+R
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); font-size: 12px; text-wrap: wrap; background-color: rgb(255, 255, 255);">那么我们知道这个时候累加器1/2的值分别为md4和md0.
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); font-size: 12px; text-wrap: wrap; background-color: rgb(255, 255, 255);">那么当其他的中断需要执行的时候,假如刚好在划线那里执行了其他ob的程序,并且修改了累加器的值。那么切换回来ob1的时候,累加器的值是如何恢复的?
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(0, 0, 40); text-align: justify; font-size: 14px; line-height: 26px;">这个问题,建议你看一下 “堆栈” 的工作原理。在发生中断的时候,CPU 先把寄存器内的值推入 堆栈。等到中断返回的时候,再把 堆栈中保存的值 再重新调入 各个寄存器,继续执行程序。
inkMacSystemFont, "segoe ui", Roboto; padding: 0px; margin-top: 0px; margin-bottom: 0px; color: rgb(0, 0, 40); text-align: justify; font-size: 14px; line-height: 26px;">