首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]关于PRM文件的问题

如果常数只定义却不在程序中引用,就会被优化掉。
海纳百川  有容乃大
如果愿意,把你的整个project打包发过来看看。
海纳百川  有容乃大
strongchen_free@yahoo.com.cn
海纳百川  有容乃大
我刚看了一下,好像没有附件?
海纳百川  有容乃大
如果是常数,就放入ROM中;如果是变量,就放入RAM中。
海纳百川  有容乃大
我看到了你的project,知道了你的问题是什么。
首先,FCB是定义常量的伪指令,不能用于定义或初始化变量。因为变量放在RAM中,上电后的值是不确定的。放在RAM中的变量必须用数值指令(STA、STX、MOV等)进行赋值。
所以,你在程序中将NUMTABLE定义在RAM的ZERO_PAGE中,然后用FCB伪指令去赋值,编译器是不认的。
但是,你用ORG然后再用FCB这种方式,可以说是骗过了编译器。此时编译器不知道你的0x50的地址到底是RAM还是ROM,因为你用了FCB指令,就当作常数赋值了。
但实际上,这种作法虽然能骗过编译器,也只能在软件仿真时有用。当硬件仿真或把程序写入芯片时就会出错。因为RAM本身在写芯片时是不写的,而且其中的值复位后是不确定的。


[此贴子已经被strongchen于2005-10-10 10:19:04编辑过]

海纳百川  有容乃大
返回列表