发新帖我要提问
123
返回列表
打印

对汇编使用非常好奇

[复制链接]
楼主: ouxueguo
手机看帖
扫描二维码
随时随地手机跟帖
41
yewuyi| | 2013-1-7 08:47 | 只看该作者 回帖奖励 |倒序浏览
光做这样的测试确实可能会出现较大差别,但这可不能说明PICC效率低啊,这个测试基本只使用了C编译器的代码翻译功能,代码优化功能基本丧失掉了。

PICC影响效率的最大之处在于不能跨文件优化,虽然最新版本在这方便也做了很多尝试,但优化效果还不是很明显,但基本上所有的C编译器都存在这个问题,而汇编程序相当于完全交给了工程师来制定优化规则,如果一个经验非常丰富,并且有足够的时间来精雕细琢一个汇编程序的话,那确实汇编程序要更精悍一些,但我个人认为,2K以上的程序,这样的差距造成的代码大小一般在10%以内就很正常了,如果考虑到C编译器的偏于书写、移植、阅读、检查等作用,个人认为在绝大多数应用中是可以接受这个差异的,特别是现在芯片资源不紧张的情况下,如果没有特殊的非此不可的理由,个人认为就没有必要用汇编去做实际项目了,当然从学习的角度看,汇编还是很有必要的,只有基于对汇编的足够了解,才能更深刻的理解C和C编译器,也才能做到足够的扬长避短,为己所用。

使用特权

评论回复
42
XIEYUANBIN| | 2013-1-7 12:26 | 只看该作者
我有一个超过3K的程序,使用16F723,效率,只是某些程序用了汇编,效率就超过10%。优化9级。这个汇编在程序空间不够的时候,不得不使用。

使用特权

评论回复
43
明月小厨| | 2013-1-9 22:33 | 只看该作者
关于汇编和C的编译效率没有什么好计较的;我对比过51的汇编和C;我发现差别极小;
函数调用:出入栈;如果是C处理的时候有可能出入栈很标准;如果你用汇编处理,也许你只出入栈被破坏的部分;感觉没有什么好说,如果用C编程,思路可以很清楚,如果用汇编,你不得不处理每一个细节;很烦人;
如果老板 要求用汇编,我立马拍拍屁股走人——不是会不会,是太折腾人了;

使用特权

评论回复
44
明月小厨| | 2013-1-9 22:39 | 只看该作者
我现在更堕落了,不是用不用C的问题;我现在感觉用库编程也很好;甚至寄存器的定义都不用操心;
例:有几个相关的寄存器,每一位是什么意思,赋值先后关系等等;
全部不用操心,直接用库函数调用解决了。如:初始化串口
1。波特率是多少:填上9600;(和系统时钟有什么关系你不用操心)
2。几位数据?8位;
3。停止位几个:1个;
4。校验?:否;
......按函数要求,一问一答;操作完毕;

使用特权

评论回复
45
明月小厨| | 2013-1-9 22:42 | 只看该作者
本帖最后由 明月小厨 于 2013-1-9 22:44 编辑
明月小厨 发表于 2013-1-9 22:39
我现在更堕落了,不是用不用C的问题;我现在感觉用库编程也很好;甚至寄存器的定义都不用操心;
例:有几个 ...


感觉和使用串口精灵差不多;:(
编程的最低境界——填空;:lol

使用特权

评论回复
46
lanyong| | 2013-2-6 10:58 | 只看该作者
关键是资源是否够,有够随便你整。没够就得想办法了。

使用特权

评论回复
47
lanyong| | 2013-2-6 11:12 | 只看该作者
我认为pic的大问题是bank.切来切去,不利于快速处理数。就全范围单指令周期寻址不好吗?pic的解释指令可以少字宽,节约硅片面积。挺吐血的。

使用特权

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

本版积分规则