单片机堆栈指令问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 07:09:23
指令:
PUSH A
PUSH B
MOV A,RO



POP B
POP A

说是为了现场保护,和恢复现场,可是A的值在中间已经变化了(MOV A R0)还怎么恢复呢? 谢谢赐教!

单片机里有个堆栈SP,(可以理解为一个货架)
PUSH A 就是把A放在堆栈里了(货架第一层).
PUSH B 就是再把B放在堆栈里(货架第二层).

然后,A,B你就用吧

完后,

POP B 从堆栈里取出B(货架第二层要先取)
POP A 再从堆栈里取出A(货架第一层后取)

这样,原来的数就恢复了...