单片机堆栈指令问题
来源:百度知道 编辑:UC知道 时间:2024/05/31 07:09:23
指令:
PUSH A
PUSH B
MOV A,RO
。
。
。
POP B
POP A
说是为了现场保护,和恢复现场,可是A的值在中间已经变化了(MOV A R0)还怎么恢复呢? 谢谢赐教!
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(货架第一层后取)
这样,原来的数就恢复了...