当前位置:首页 > 游戏信息 > 正文

单片机编程中,执行两个pop指令和两个push指令后sp的值应该是不变吧

单片机编程中,执行两个pop指令和两个push指令后sp的值应该是不变吧-第1张-游戏信息-龙启网

是的,SP不变;

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