我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 栈地址 >

51单片机因中断处理子程序调用时入栈问题?

归档日期:07-29       文本归类:栈地址      文章编辑:爱尚语录

  51单片机因中断处理,子程序调用时当前PC入栈是单片机自己自动完成的吗?可以程序员编程完成吗?在单片机操作系统的源代码中寄存器R0~R7,A,PSW等貌似也要入栈。入栈的项目哪些是单片机...

  51单片机因中断处理,子程序调用时当前PC入栈是单片机自己自动完成的吗?可以程序员编程完成吗?在单片机操作系统的源代码中寄存器R0~R7,A,PSW等貌似也要入栈。入栈的项目哪些是单片机自动完成的,哪些是要变成完成的?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部子程序的调用,地址入栈是自动的。程序可以编程操作,51单片机是16位的地址,两个字节,汇编语言你可以在程序中,在栈中压入两个字节的地址数据,然后执行RET指令,程序就转向你指定的地址执行。

  你说的应该是C语言编程的吧。C语言调用子函数后当然也可以操作栈,但是除非你知道你要做什么,否则不建议在C语言中操作硬件寄存器。

  R0~R7,A,PSW要入栈因为是在主程序中用到了这些寄存器,但是中断是不确定什么时候发生的,在中断程序中也要用到这些寄存器,为了在中断中不修改主程序中的这些寄存器,在中断程序发生时,先保存这些寄存器的内容(入栈保护),然后中断使用这些寄存器,用完后出栈恢复这些寄存器的值,程序重新把这些寄存器交回主程序运行

本文链接:http://apawoodbury.com/zhandizhi/399.html