展开全部
51单片机 堆栈, 一般是用来 在 调用 子程序, 或者 CPU 产生中断, 时于硬件完成 保存下一条指令地址的,在子程序 或者 中断服务程序 返回时 于硬件 自动将地址 弹出,去接着执行 调用子程序 或者 中断服务程序,前的 下一条指令。
还可以保存 一些临时 数据,如进入中断 服务程序 时需要 保护现场,把一些数据 先压入堆栈,
在 中断返回 前再 弹出到 用来的寄存器,(一般主要是 累加器 和 状态寄存器 等)
当然 在编程 时 临时需要 保存一下数据 也可以,只要堆栈有空间,注意保存后 要 取出,不然会使程序 运行 出错的。
还可以保存 一些临时 数据,如进入中断 服务程序 时需要 保护现场,把一些数据 先压入堆栈,
在 中断返回 前再 弹出到 用来的寄存器,(一般主要是 累加器 和 状态寄存器 等)
当然 在编程 时 临时需要 保存一下数据 也可以,只要堆栈有空间,注意保存后 要 取出,不然会使程序 运行 出错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
堆栈段是在进入中断之前存放当前程序寄存器中值的地方,做现场保护用,在中断程序执行完毕后,将堆栈段里面的东西读取到程序寄存器中,继续执行进入中断之前所进行的程序。
在中断嵌套时,堆栈段会存放多个程序寄存器的值,但是堆栈的存取原则是后进先出,所以最先读出来的值总是最后存进去的那个值。
在中断嵌套时,堆栈段会存放多个程序寄存器的值,但是堆栈的存取原则是后进先出,所以最先读出来的值总是最后存进去的那个值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询