当前标签

堆栈

在单片机程序设计中遇,从被嵌套的高级中断中如何强行返回到主程序。子程序返回指令在恢复堆栈后可不可以用跳转指令替代返回到主程序中?

答:如果是51系列,那直接用POP指令就可以实现强行返回;如果是用RISC结构的单片机(HOLTEK单片机是RISC结构的),那一般都是硬件堆栈,没有PUSH和POP指令,所以子程序调用和返回指令必须成对使用。

说明MCS-51的堆栈特点,复位时(SP)的值是什么?正常工作时应如何设置(SP)的值?

堆栈特点: (1)堆栈结构—向上生长型。 (2)堆栈按“先进后出”原则。 (3)数据入栈时,先SP自动加“1”,后入栈。数据出栈时,先出栈,后SP自动减“1”。 (4)SP指针始终指向栈顶。 单片机复位后,SP为07H。 堆栈实际上从08H单元开始,由于08H~1FH单元分别是属于1~3组的工作寄存器区,最好在复位后把SP值改置为60H或更大的值,避免堆栈与工作寄存器冲突。