打印

把sp设置高了是不是能腾出内存?

[复制链接]
1980|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yanxuetao|  楼主 | 2008-10-31 14:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lyjian| | 2008-10-31 14:12 | 只看该作者

51单片机sp默认是从07H开始

软件仿真时是7FH是因为软件对它作了修改。
SP设置成B0H的时候data是可以从00H到B0,但你要小心不要让SP溢出了。

使用特权

评论回复
板凳
aceice| | 2008-10-31 14:14 | 只看该作者

可用的RAM与SP的位置无关

只是你设置到07H以外的位置,不容易冲突。

使用特权

评论回复
地板
yanxuetao|  楼主 | 2008-10-31 14:24 | 只看该作者

谢谢楼上各位

我把sp设置为B0H了,堆栈到没有溢出,只是data还是00H到7FH那么多,没有多出来,我定义了个数组,需要用到B0H。是不是我还有其他地方没设置对?

使用特权

评论回复
5
s46410864| | 2008-10-31 14:25 | 只看该作者

同意LS

51单片机中RAM就是那些,把SP设在07H后面的哪里都不能增加

使用特权

评论回复
6
lyjian| | 2008-10-31 14:33 | 只看该作者

有些51的RAM是128B,有些是256B

你用的是什么型号

使用特权

评论回复
7
yanxuetao|  楼主 | 2008-10-31 14:50 | 只看该作者

回6楼 ti的msc1214y5

使用特权

评论回复
8
lyjian| | 2008-10-31 15:21 | 只看该作者

80~FF的是IDATA

使用特权

评论回复
9
yanxuetao|  楼主 | 2008-10-31 15:55 | 只看该作者

回8楼:是这样的,我从新改了数组安排

使用特权

评论回复
10
ayb_ice| | 2008-10-31 21:59 | 只看该作者

堆栈是由编译器自动设置的

使用特权

评论回复
11
weishg| | 2008-11-1 13:45 | 只看该作者

如下

所谓的SP默认是0X07,是指单片机复位后的值,如果SP是其他值,则是C编译器给它初始化的值,如果是汇编程序,不加编译器的启动代码,在没改变SP之前其值就是07H
如果单片机有256字节的RAM,那后面的高128字节定义为间接存储区,只能用间接寻址法

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

11

帖子

0

粉丝