MSP430如何将数组定义在 ROM中,因为数组过大不能放在RAM中。 5

 我来答
叫我哆啦A萌
2014-10-13 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:24.4万
展开全部
不知道你写过51的汇编没有,在汇编语言中定义一个八位二进制数组是这样的:
table DB 00H,00H;这样就定义了一个含两个0的数组。在使用数组数据是命令是这样的:
MOVC r1,table;r1是RAM里的一个寄存器,这里的MOVC是ROM向RAM送数据时的专用指令,所以很清楚,你在程序中定义数组的话,数组其实就是被定义在ROM里的。这一点其实也好理解,因为ROM是程序存储器,数组也是程序一部分,也会被编译,当然会在ROM里了。这种问题如果写过汇编就很清楚了,所以学单片机汇编还是很有用的。因为还就没写汇编程序了,所以可能会有点小的记忆错误,求大神不喷。
追问
我找到原因了,数组是放在ROM中的,执行时会拷贝到RAM中,使用const修饰就可以了。
追答
吧编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作。但是在运行过程中,还是会在RAM中有一份拷贝,只是只有一份,如果没有修饰的话,可能会有好几份。
知道小叶3
2014-10-18
知道答主
回答量:43
采纳率:0%
帮助的人:19.9万
展开全部
const就可以了,我也纠结了好久,最后找到答案的,不像51有什么idata,xdata,code等关键字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
启岩
2014-10-14 · TA获得超过1851个赞
知道小有建树答主
回答量:809
采纳率:0%
帮助的人:643万
展开全部
使用const关键字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式