资源描述
单片机堆栈原理及应用
单片机堆栈是什么?
在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。
单片机堆栈有什么用?
1)子程序调用和中断服务时CPU自动将当前PC值压栈保存,返回时自动将PC值弹栈。
2)保护现场/恢复现场
3)数据传输
单片机堆栈原理:
堆栈区由特殊功能寄存器堆栈指针SP管理 。堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。
由上述可见:SP的内容就是栈顶单元的地址。
堆栈的操作:入栈和出栈
入栈:PUAH DIRECT
功能:先SP+1→SP,(DIRECT)→((SP))
设(SP)=60H,则执行指令 PUSH Acc后,(SP)=61H,(61H)=(Acc)
即将累加器A的内容如栈了。
出栈: POP DIRECT
功能:先(DIRECT)→((SP)), SP-1→SP
用法同上。
注:上述操作主要用于子程序和中断服务子程序中的现场保护。而断点保护是由硬件自动完成的。
用Keil C仿真软件仿真,请学生观察相关寄存器的值的变化,从而理解堆栈的作用及操作。
展开阅读全文