历史上的今天
今天是:2025年07月02日(星期三)
2020年07月02日 | 为何使用C而不使用汇编进行开发C8051F
2020-07-02 来源:eefocus
好些年之前,我为自己写了几万行汇编代码而骄傲。
然而,做过多年软件开发的我,看到以前写的汇编代码也是很多不懂的,这可是自己亲手写的呀。汇编代码由于其可读性比较差,给后期的维护造成很大的困难。因此建议单片机的学习者们一定要学习C。
这句话要是我在读书的时候听到,只是会嗤之以鼻。“用汇编就足够了,为什么用C呢?如果您用汇编做不了,说明水平还不够”,这是我的典型想法,当时我的汇编水平甚至成为我的骄傲。然而几年之后的今天,我要劝说后来学习者一定要舍弃汇编而学习C语言,是否很好笑。
首先说说C的优点。
1、直观,可读性强:这点很重要。对于一个产品,周期是很长的,即使出第一台产品之后,还有很长的维护时间。这中间维护人员可能经常变动,如果可读性强,将给维护工作省下很大的成本。即使是在开发,可读性强的程序也便于查错。
2、模块化可以做的很好:这点也是很重要的。模块化做得好,当然程序的重用性就高。对于公司来说,这一点是关系到公司长远发展的。程序可以重用,说明下一次开发的投入就可以减少,时间也可以加快,多好的事呀。
还有很多有点,当然也就是高级语言相对于汇编语言的优点,这里就不一一列举了。
再来看看汇编的优点:应该来说,汇编语言操作硬件直观,对于硬件非常熟悉的人来说,直接操作很方便。另外可能就是很多人说的效率要高了。
针对以上两点我来说说,首先“汇编语言操作硬件直观”,这是在代码编写阶段,对于整个产品周期来说,应该是要避免使用汇编语言的,这个在C语言的优点中已经说明。对于第二点,效率问题,目前C语言的编译器优化也做得很好,对于一个汇编不是很熟练的来说,C编出来的程序应该不会效率比汇编低。当然这样就对开发人员的要求降低了很多,人员的限制也就没有那么严格。另外是否真的是效率问题呢。我觉得应该是一个整体效率和局部效率的均衡问题。需要提高的是整体的效率。一个好的软件架构,远远比一个好的函数效率要高的多。因此主要的精力应该放在软件的架构上。另外现在CPU的速度不停的往上提,CPU越来越快,这点应该也可以弥补程序的效率吧。
当然,我的意思不是不学习汇编。汇编对于熟悉硬件有很大的好处,应此汇编语言在学习初期一定是要学习的。在基本的硬件熟悉之后,就可以转向C了。
史海拾趣
|
这些资料来自网上,以前用过的,有程序、文档、ppt等,还有一个Protues软件;大多是S51和AVR的。 可能有与网站其他网友的重复的内容,没时间也不好校对了。 陆续找出来发到这里分享了!… 查看全部问答> |
|
时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用(含光盘源代码下载) 时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用(含光盘源代码下载) 目录: 第1章 什么是时间触发的嵌入式系统 1.1 引言 1.2 信息系统 1.3 桌面系统 1.4 实时系统 1.5 嵌入式系统 1.6 事件触发系统 1.7 时间触发系统 1.8 小结 ...… 查看全部问答> |
|
Resetting factory default configuration... System ready! Preparing for download... 串口终端显示到以上信息,就没下文了 … 查看全部问答> |
|
各位老师们,帮忙解决下啊,很困惑, 我将电源S-100-5型号,将主板上面R27,R28,,R25,D17,C18,C29,C27,Q5元件拆掉了,在在R29的位置接一跟线,编号1,D10,D9交接位接根线,编号,2在R34的位置接根线,编号3,三根线构成一组 ...… 查看全部问答> |
|
模块一 module multiplier ( product,a0,a1 ); parameter a0_width=8; parameter a1_width=8; //localparam product_width=a0_width+a1_width; output [ product_wid ...… 查看全部问答> |
|
【咨询】哪位用过飞凌S3C6410开发板LVDS的10寸屏?好用吗?和8寸的LVDS比起来呢? 现在公司做项目打算用工业屏,初步计划是用10寸或15寸的,分辨率800*600或1024*768的。刚问了一下飞凌的技术,他们用的是群创和LG的10寸屏,使用没问题。可没有演示的照片。看不到效果,不太放心啊。有没有哪位朋友用过?麻烦告诉一下吧,谢谢了。… 查看全部问答> |




