所谓不可预料就是无法知道会出现的问题,比如死机,乱动作,乱显示,或者局部功能正常等。
在51系列的CPU中,堆栈空间共用128BYTE的RAM空间,CPU复位后SP=7,也就是说地址空间SP+1的位置后面都可以做为堆栈空间,当然你可以调整SP.一般来说主要注意以下一些问题:
1、PUSH和POP是成对出现,如果子程序中不小心忘记了POP,或者漏掉了一个POP数据出栈那程序就不能正常返回,造成死机。
2、由于和RAM空间共用,所以在使用RAM空间的时候必须避开堆栈使用的空间,而使用堆栈空间时候也要小心别只顾着PUSH呢,造成栈空间和RAM空间地址冲突。
一般这些问题在使用汇编语言的时候比较突出,使用C语言写程序一般编译器会帮你管理堆栈的,所以基本不用操心会出现堆栈管理出问题。
最后修改:2006-2-20 9:48:20