51什么时候应该设置堆栈SP?

2020-01-25 15:39发布

我从没设置过,我看公司一同事每次写程序,第一行就是设置SP?
不好问,问也不会说
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
BDXing6
1楼-- · 2020-01-26 09:42
栈地址最好设置为7F或更后的地方,但注意保留足够的栈深就可以了。在汇编中一般是初始化的第一条指令。
614229816
2楼-- · 2020-01-26 12:03
Etual 发表于 2012-6-4 22:58
用C 写,不需要设置(因为keil的启动代码做了),用汇编写,那是必须设置的。

知之为知之,不知为不知,是 ...

汇编的程序简单可以不设,但是还是设的好,想当初找了我好辛苦才发现这个错。

简单是指程序堆栈不会用到08H(01组的R0)开始的RAM及以后一部分,大小看堆栈最大可能大小。就是汇编默认08H放第一个堆栈值,然后向后数。

总之,还是设一下比较好。C就不用了。
wajlh
3楼-- · 2020-01-26 17:42
 精彩回答 2  元偷偷看……
614229816
4楼-- · 2020-01-26 19:08
楼主是不是学C的?
nuc501
5楼-- · 2020-01-26 19:53
堆栈的大小就看你程序的局部变量有多少还有中断里面的局部就量有多少,还有重入函数有多少
dz20062008
6楼-- · 2020-01-27 01:21
复位sp就会默认设置为07h,与编程语言无关吧,设置SP是好的习惯,为了使程序严谨。如果写的程序要使用到第二个工作寄存器区的话就要设置栈顶指针,复位初始化默认使用0工作寄存器区,SP设置在1工作寄存器区的开始。自己还是看看内部存储器配置吧

一周热门 更多>