使用堆栈指令(PUSH和POP )要注意的问题
(2009-06-22 15:43:50)
标签:
堆栈杂谈 |
分类: 单片机 |
1.1、由于PUSH、POP
指令使用的寻址方式为直接寻址!所以
push a
是错误的,应当是 push acc
或 push
0e0h。同理:push R0
也是错误的,应当为:
push
00h。
2.2、进栈操作堆栈向上“生长”,即先作sp+1;出栈则相反。
3.3、系统上电时,SP=07h。SP的值可以根据需要进行修改,在确定SP值时要考虑对栈区对数据区的影响,以避免两者冲突。通常在程序的初始化时加如下指令:
即将堆栈的起始位置上移到RAM的60H单元。