请教各位版主和高手:中断的现场保护和恢复现场
在我的程序里只有堆栈用到了AR7,其它的地方都没有用,怎么会产生冲突呢?我用ST1,ST0试了一下,发现在保护现场时,ST1和ST0的值都能存入堆栈,但是在返回的时候就出现错误
另外我还有各问题,在保护现场和恢复现场中分别有
GISR3:
MAR *,AR6
POPD *+
………………
TIME2_ISR: ………………
………………
GISR3_EXIT:
mar *,AR6
……………………
PSHD *
CLRC INTM
RET
POPD *+和PSHD*,这两句话我一直不明白是什么意思,是做什么用的,请一起指教一下好么?谢谢啦!
8个AR是不是也应该保存呢?
另外我在很多保护现场和回复现场中看到,在保护现场中用POPD *+,在恢复现场中用到PSHD *,我一直都没有弄明白这两句到底是什么意思呢?
如果进行现场保护,应该是把数据压入堆栈,为什么要采用出栈的POPD*+呢?
恢复现场也是,应该是把堆栈的数据弹回原来的寄存器,按理说应该是用出栈指令,怎么反而用了进栈的PSHD*呢?麻烦您赐教!谢谢!