keil C51调试的时候发现c语言编译出来的汇编语言不是我所需要的,怎么修改方便
3个回答
展开全部
有难度。你要总结一些这方面的经验。
C编译的时候。会多出一些东西来是正常的。因为编译器不是针对某一个MCU来做的。所以,它在编译的时候往往会参考INTEL的芯片结构来做。
你可以找一些C语言编译优化等资料来看看。写程序的时候,把运算的代码尽可能的分行来写,特别是IF等语句不要执行带运算的判断。少一个跳转的情况。尽量的少使用乘除法。改用移位来实现。慢慢的你就会做到了!
C编译的时候。会多出一些东西来是正常的。因为编译器不是针对某一个MCU来做的。所以,它在编译的时候往往会参考INTEL的芯片结构来做。
你可以找一些C语言编译优化等资料来看看。写程序的时候,把运算的代码尽可能的分行来写,特别是IF等语句不要执行带运算的判断。少一个跳转的情况。尽量的少使用乘除法。改用移位来实现。慢慢的你就会做到了!
追问
多谢,就是不知道有些工程师为什么总强调会能看懂C编译后汇编文件,有什么用呢
追答
我想你还没有做一些要求很高的产品的项目。
比如说:某个项目,采集某个信息。必须20US采集一次。采集完毕以后,还要对其进行滤波。如果滤波算法稍为复杂一点,比如说采用移动平均的话。这样子的程序,基本上就一直处于中断当中。如果程序写的不是很好。算法比较费时间,当计算的时间超过20US以后。芯片就一下在中断。主程序一行也跑不了。相当于死机。
这个时候,你想想看。怎么办?要么换一个跑得更快的MCU。要么修改这个程序。真正的高手,不会换MCU。因为那样成本很增加很多。而是把中断程序改为ASM(汇编)来实现。如果说你又不想用汇编写代码。那么,你就必须把C的代码控制得像汇编一样快。否则这个项目,你就没办法做下去。
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
经过C语言编译过的汇编是很复杂的而且有很多的东西是没有必要的
因此你还是直接用汇编写
你想啊,同样功能的代码,一般编译到最后,用C语言写的使用汇编写的代码长度的很多倍
主要是C语言功能模块化,有很多东西直接看汇编的话是不必要的
因此你还是直接用汇编写
你想啊,同样功能的代码,一般编译到最后,用C语言写的使用汇编写的代码长度的很多倍
主要是C语言功能模块化,有很多东西直接看汇编的话是不必要的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在c语言中嵌入汇编,不然的话,keil会按照他认为的模式生成汇编代码的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |