[51单片机] KeilC51的生成的代码是怎么计算的

[复制链接]
1461|5
 楼主| 冷调幽忧 发表于 2016-11-8 11:14 | 显示全部楼层 |阅读模式
本帖最后由 冷调幽忧 于 2016-11-9 09:34 编辑

const区是34,code区是1447.。。。。34+1447=1481,。。。。但生成的bin实际大小是1491,多出10个字节是哪块漏算了的。。。。。。。看了MAP,那10字节是被GAP占据了,不知道GAP是什么用的?还有堆栈的SP长度只是1字节?我调用一次函数至少就去了2个字节吧?




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ayb_ice 发表于 2016-11-8 15:00 来自手机 | 显示全部楼层
const不一定一定是代码区
jekey 发表于 2016-11-8 15:12 | 显示全部楼层
可以生成map文件,看看就知道了。
xyz549040622 发表于 2016-11-8 23:09 | 显示全部楼层
一般是地址空间不连续导致的 ,建议你先看看map的情况。贴map表上来看看
-------------------
等待别人的解答。
coody 发表于 2016-11-8 23:43 | 显示全部楼层
KEIL C51显示的是实际代码长度,中间有空的,不计算在内。
比如,个别版本的编译器,会在开始插入2K的空白(主程序从0x0800开始),但是代码长度不计算再内,显示几百字节的代码,实际要加2K。
robter 发表于 2016-11-9 08:28 | 显示全部楼层
以前没有注意到这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

78

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部