搜索
bottom↓
回复: 3

[PICC]PRO 9.60 PL5 与 STD 9.60 PL2的一些使用比较

[复制链接]

出0入0汤圆

发表于 2009-3-3 16:13:33 | 显示全部楼层 |阅读模式
我随便写了一小段C代码,PRO9.60PL5比STD9.60PL2省了8个代码空间,一个寄存器占用
一开始挺高兴,但仔细查了list文件后发现实际上STD9.60PL2比PRO9.60PL5的代码优化效果要好,
只是函数调用上PRO9.60PL5用了call,而STD9.60PL2占用了寄存器保存入口号直接用goto跳来跳去,

如果当函数多级调用时,(极端些,比如PIC16F57/54),显然call是不行的,
pro版的所谓的智能感知优化可能是查觉堆栈没问题,就用了call
-------------------------------------------------------------------
但是某些语句,pro比std却要浪费了代码
比如
switch(n)
{
        case 0:PORTB=0;break;
        case 1:PORTB=1;break;
        case 2:PORTB=2;break;
        case 3:PORTB=3;break;
        case 4:PORTB=4;break;
        case 5:PORTB=5;break;
        case 6:PORTB=6;break;
        case 7:PORTB=7;break;
}
std版编译出来有如下代码
(变量名等我用了字母,实际lst文件中很多是数字,看的烦,有些类似1^0也是我自己加上的^0,比数字方便理解)
MOVF    n,W
BTFSC   STATUS,Z
GOTO    L12
XORLW   1^0
BTFSC   STATUS,Z
GOTO    L13
XORLW   2^1
BTFSC   STATUS,Z
GOTO    L14
....
而pro版编译出来多了一条废语句,如下
MOVF    n,W
XORLW   0          ;这条是废的
BTFSC   STATUS,Z
GOTO    L12
XORLW   1^0
BTFSC   STATUS,Z
GOTO    L13
XORLW   2^1
BTFSC   STATUS,Z
GOTO    L14
....

=============================
同样,还有其它一些语句也会多些类似的废语句,比如
if((u8)(a-b)>=2)
{
        a = 5;
}
具体我就不写了
-------------------------------------------------------
所以表面上看来pro的代码和寄存器占用要比std少,
但是通过其它一些手段换来了,而不是纯粹的语句优化,
相比之下std的语句优化要好一些...

出0入0汤圆

发表于 2009-4-6 20:33:20 | 显示全部楼层
楼主真是仔细!我们要是都这样就好了!

出0入0汤圆

发表于 2009-4-7 08:52:13 | 显示全部楼层
我也发现std版比pro好,8.05比9.60好用,除非8.05不支持的型号。

出0入0汤圆

发表于 2010-6-10 20:02:11 | 显示全部楼层
回复【楼主位】snoopyzz
-----------------------------------------------------------------------

能否把PRO 9.60 PL5 上传一下!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 08:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表