单片机编程中,执行两个pop指令和两个push指令后sp的值应该是不变吧
- 游戏信息
- 发布时间:2025-05-11 12:21:53

是的,SP不变;
PUSH是压栈用来保护现场,POP是弹出堆栈常在中断服务中用来恢复现场,比如PC机(堆栈递增)SP弹出后会增加为SP+2,而SP指向的堆栈区的内容会读到内部RAM中通过数据总线与ROM中的代码完成被中断的原程序;为了保证程序的无缝衔接,堆栈中SP的值在操作前后必须是一致的,这样程序才能回去;
是的,SP不变;
PUSH是压栈用来保护现场,POP是弹出堆栈常在中断服务中用来恢复现场,比如PC机(堆栈递增)SP弹出后会增加为SP+2,而SP指向的堆栈区的内容会读到内部RAM中通过数据总线与ROM中的代码完成被中断的原程序;为了保证程序的无缝衔接,堆栈中SP的值在操作前后必须是一致的,这样程序才能回去;