C51怎么存储指令地址呢?就是说,怎么将地址取出存起来,以后重新装入PC寄存器实现无条件程序转移

现在编程遇到一个问题,C51中,为了防止程序出现死循环,在模块入口需要把地址存起来,我用一个中断监督,当出现死循环,在中断服务程序里需要把之前存起来的地址重新装入PC,这样就实现了无条件转移,跳出死循环。但是我的问题是,C51怎么存PC,装PC啊?不是汇编那么简单吧

c51最终也要编译生成机器指令代码
为防止死循环,最好的办法是“看门狗”追问

看门狗只能复位CPU,不能实现容错

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-17
用指针保存中断入口地址,

voatile unsigned int * IMR

IMR = 中断函数名;
IMR为入口地址,就是你要装入PC 的地址。
请审核!
第2个回答  2012-08-13
在进入函数之前,把函数地址保存起来就可以了.
函数名就是地址.
fun()
fun就是地址