51 的 4 组 R0--R7,使用时的确要注意,否则,带来的后果不可思议!
如果,中断之前是使用 RAM 0 组的,那么,在中断里, R0--R7 如果没有切换 RAM 0, R0--R7 也被使用,原来的数据就会被改写, R0~R7 全部入栈则可以还原原来的数据.
如果你进入中断后,切换了 RAM 0 到 RAM 1(2,3),这时, 原来的 R0~R7 不用入栈.中断里使用的 R0--R7 虽然名称相同,但是物理上 RAM 是不同的.
随着中断返回,状态寄存器的 RS1,RS0 会出栈,(如果已经入栈保护),那么,你无需中断结束后切换 RAM 1 到 RAM 0 .-----中断返回后会自动指向 RAM 0 .
仅供参考! |