我来详细讲一下吧。
复位的时候SP等于07,堆栈的用处是存储数据,举个例子:
如果你现在不修改SP,那SP就等于07H。
假如你的A是等于6的,你执行PUSH ACC,之后,你的SP就变成08H了,如果你再执行一句 MOV 08H,#3,你的08H单元之前本来是6,现在变成3了,你再执行POP ACC,此时A等于3了。
无法恢复了。
一般我们都要重新设置SP,一般SP=70H就够用了。堆栈区间就是70H到7FH,这样你就不会冲突了。
中断时用来保护现场数据用的
复位后SP=07H
假如没有堆栈,数据不能保存,程序可能不正常。
堆栈安排在07-7F的范围内,建议安排在60H比较合适。