标题: 你认为在单片机采用C语言和汇编语言各自的优缺点是什么 [打印本页]

作者: chomou    时间: 2020-6-24 19:45
标题: 你认为在单片机采用C语言和汇编语言各自的优缺点是什么
rt
作者: chomou    时间: 2020-6-25 11:27
使用C语言效率更高,使用汇编语言有利于直接向硬件编程
作者: lovexulu    时间: 2020-6-26 11:14
多年前资源缺乏,汇编可用,多年后的今天资源过剩,C语言就火了。
作者: 3149741931    时间: 2020-6-26 12:01
首先,如果是单片机开发的话,我认为,无非也是考验开发者操作寄存器的能力,学习汇编语言,虽然难懂而生硬,但是对于单片机内部的运行,寻址,计算,跳转,以及时序的把握,都要摸得个一清二楚,这是C语言中编译器帮你做了的.但如果你真的可以用汇编写一两个项目出来,相信你对单片机的原理会有一个质的飞跃.同时日后的C语言开发,你也会下意识珍惜编译结果而去优化自己的C语言写法.其次,还是针对单片机开发的话,单片机面向的是较低的市场,部分单片机甚至没有C编译器,而上头却决定用这一块单片机的话,这就要求你快速上手
作者: daocheng    时间: 2020-6-26 13:27
额,使用C语言效率更高,更简洁,而且可移植性好些,使用汇编语言有利于直接向硬件编程,编写出的效率高,性能好些,不过现在这个好像不是那么明显了
作者: cdlongbo    时间: 2020-6-26 13:52
一般99%的应用都是C了,目前汇编只用在单片机的启动代码,这些都是厂家做的。现在的编译器都是非常智能的生成的代码效率都足够高了!
作者: Glner    时间: 2020-6-27 01:44
觉得汇编偏向于底层硬件,而C会偏向大众吧,可移植性,效率啥的都会高一点

作者: LHZMLX    时间: 2020-6-27 08:20
C语言编属于高级语言,具有可移植性,能够结构化编程。使用标准C语言的程序,几乎都可以不作改变移植到不同的微机平台上,对于嵌入式等的微控制芯片,属于标准C语言的部分也很少需要修改,而且程序很容易读懂。 C语言编写程序结构清晰,移植性好,容易维护和修改。 汇编语言针对不同的操作系统平台,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是汇编语言是针对专门的控制器的,所以运行速度可以精确到一个指令周期。汇编语言的程序读懂需要借助微控制器的指令手册以及各个寄存器的说明,所以很难读懂。 汇编语言编写代码实时性强,能够直接控制硬件的工作状态,但是不具有可移植性,维护和修改困难。
作者: angmall    时间: 2020-6-27 08:34
C语言是用于高级和低级应用程序的中级语言。低级和高级语言之间的区别是:低级语言更接近硬件。因此,C和汇编语言都是低级编程语言。 汇编语言更接近于硬件。

汇编程序是一种低级语言,它依赖于系统体系结构,因此它可能非常专业。因此,如果您为一台计算机编写汇编程序例程,则不能在不进行彻底重写的情况下将其移植到具有不同体系结构的另一台计算机上 对于C语言,您可以很容易地将C移植到各种平台上。

最大的区别当然是汇编可以得到您要编写的内容。您按原样编写每条指令(一条助记符,一条指令给处理器),并且此后没有对代码进行优化。

在C语言(和其他高级语言)中,每条指令/代码行可能会向处理器产生数十条指令。此外,您的代码也会得到优化。对于C语言来说,这是一个两步过程;首先进行编译,然后将其链接与 库和其他目标文件。


作者: WOAIJIA    时间: 2020-6-27 09:31
汇编程序是一种低级语言,它依赖于系统体系结构,因此它可能非常专业。因此,如果您为一台计算机编写汇编程序例程,则不能在不进行彻底重写的情况下将其移植到具有不同体系结构的另一台计算机上 对于C语言,您可以很容易地将C移植到各种平台上。
作者: 单片机小白mcl    时间: 2020-6-27 10:12
现在用汇编的少了吧,学校现在大多数编程都要求用c了,c效率高,简便
作者: ice615    时间: 2020-6-27 10:15
汇编语言编写代码实时性强,能够直接控制硬件的工作状态,占用资源少,程序执行效率高,但是不具有可移植性,维护和修改困难。C能够结构化编程,可移植性强。
作者: qyqx01    时间: 2020-6-27 12:19
因为实际中有很多客户要求价格极低,好像用到的大部分就是汇编完成的芯片,貌似价格都比较低
作者: xxpp2011    时间: 2020-6-27 21:19
与汇编语言相比,C语言效率更高更简洁
作者: 2320533991    时间: 2020-6-27 22:21
c语言更加简单易学,应用范围广,汇编语言对硬件编程比较好
作者: shuaixiaohuo    时间: 2020-6-28 00:17
汇编语言是最接近底层的,可以直接转换为机器语言,这样效率会很高;但c语言是高级语言,编写起来不会那么麻烦,更简洁。
作者: ouyangshishi    时间: 2020-6-28 08:58
c语言思路清晰,更加通俗易懂啊
作者: OPPPP    时间: 2020-6-28 09:28
汇编语言移植性不够好,C的话不会因为不同单片机结构要改里面的程序,可以直接搬用
作者: dalaoshi    时间: 2020-6-28 15:20
若有大志,需从底层做起,学会汇编,直捣CPU内脏,将来或能设计CPU。若为谋生,需与时并进,符合潮流,学C语言,出货快,谋职容易。所谓高级语言就是“替你向CPU说你不需要懂的话“,也因此你可能永远不会懂如何对CPU说话。
作者: keikeili    时间: 2020-6-28 16:55
C语言的可读性较强,读程序较为简单,而汇编很难在短时间内读懂程序。
汇编的时序性很强,可以精确控制时序流程,而C不可以。
作者: 物业tuan    时间: 2020-6-29 00:05
C语言学习相对容易,写出的代码容易理解,而要学习汇编语言显得有点吃力,需要你有相应的汇编语言基础,并且队微机原理这门课程有初步的了解。
作者: 1+1=2    时间: 2020-6-29 08:47
单片机开发用C和汇编优缺点对比如下:
1、C可以读性较强,容易让后继者接手进行扩展,汇编相对而言难度就大多了,一般人很难短时间内弄懂原开发者的原意和理清思路。
2、C可移植性较强,一个单片机的程序稍加修改,可以移植到其他环境下使用,汇编程序几乎无法移植。
3、汇编的时序性很强,可以精确严格按既定时序控制流程,C无法做到。
4、汇编可以精确定时,C只能初略定时。
作者: 黄youhui    时间: 2020-6-29 11:32
C能生成汇编,
汇编没法生成C
作者: she_cong    时间: 2020-6-29 20:41
C语言逻辑更清晰,我感觉这是C语言最大的优点
作者: 1013110175    时间: 2020-6-30 17:37
C语言更简洁,而且适用比较多的地方,但是感觉出错误有点难找。汇编语言更专业向,表达一样的功能要使用的语句更多。
作者: MikeCai    时间: 2020-7-1 15:45
1)用汇编就是浪费工程师生命,浪费公司资源,
2)啥时代了,还用汇编,虽然我曾它用那么久,除非你非常在意 那点单片机价格。
作者: 源代码    时间: 2020-7-1 16:43
(1)汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。
作者: gl960530484    时间: 2020-7-1 18:00
c语言比较高效,比较适合工程
作者: 自己上    时间: 2020-7-1 21:03
我也是小白,唯一的感觉就是C语言要比汇编省点事,汇编啥都要自己设定存储位置和功能。相比较而言我更喜欢C语言
作者: zhangxiaozi    时间: 2020-7-1 22:24
都没说到点子上,汇编效率高,同一件事C的代码长度要比汇编长(当然要精通汇编,一个半吊子的汇编程序员除外),C语言比汇编易学,其程序移植性好,即很容易从一种单片机转到另一种单片机,而汇编根本不可能,在有些对价格非常敏感的产品中,就用汇编占ROM少就可以节省money了,有一次我同事用C写的程序要4.5K空间, 只能用8K的芯片了,后来我用汇编做只要3.7K,选4K的芯片,每片节约0,75元,一年要用30多万片,尤其在单片机容量跨界时重要,不跨界时一般无所谓了!)
作者: 会有的123HYD    时间: 2020-7-2 11:22
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其
主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所
以不易移植。
C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机
语言。缺点是占用资源较多,执行效率没有汇编高。
对于目前普遍使用的RISC架构的8bitMCU来说,其内部ROM、RAM、STACK等资源都有
限,如果使用C语言编写,一-条C语言指令编译后,会变成很多条机器码,很容易出现ROM
空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,
一条指令就对应-一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况
都容易控制,调试起来也比较方便。

作者: SWJ123    时间: 2020-7-2 15:45
汇编语言的优缺点总结如下:       优点:       1)针对性强,汇编语言通常是为特定的处理器或系列计算机二进制码专门设计的,所以不同处理器架构往往对应不同的汇编语言。比如x86架构的就是x86汇编,ARM架构的CPU对应于ARM汇编,MIPS架构的CPU对应于MIPS汇编,而我们公司用的Powerpc的CPU那对应使用的汇编语言遵循PPC原则。       2)汇编语言仅仅略微高于计算机语言,仍保留机器语言部分优点,能够对机器硬件精确控制。可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。         3)占用资源少、程序执行效率高。在汇编语言中,一条指令就对应一条机器码 (而高级语言中,一条对应到多条),每一步执行什么动作都很清楚,并且程序大小和调用情况都容易控制,调试起来也比较方便。所以在资源较少单片机开发中,我们经常用到汇编语言。  利用计算机所有硬件特性并能直接控制硬件的语言。  但汇编语言也不可避免存在一些缺点:      1)汇编语言比较难懂,编写比较复杂。      2)由于其针对性较强,不同的CPU,其汇编语言可能有所差异,所以不易移植。  C语言的优点有:         1) C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。        2)层次清晰,便于按模块化方式组织程序,易于调试和维护。        3)C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。        4)C语言还具有可移植性强的特点。     C语言也有其缺点:     1)和高级语言相比,C语言语法限制不太严格,例如对数组下标越界不做检查等,这影响程序的安全性。        2)类型检查机制相对较弱、缺少支持代码重用的语言结构。        3)C语言面向过程的特点,也使其在应用在现代大型软件时出现困难。     4)和低级语言相比,C语言要先编译成汇编语言然后再翻译成机器指令,这增加了编程困难度。     5)一条C语言可能翻译成多条机器指令,需要更大的存储空间等。
作者: qq88046220    时间: 2020-7-2 20:47
汇编完全看不懂,C语言不会可以抄!不准笑!
作者: yanwan520    时间: 2020-7-2 21:04
汇编语言优点:接近于机器语言,在代码执行速率与效率上任何语言要高,缺点:语言晦涩难懂
作者: 定灵轨    时间: 2020-7-2 21:14
汇编机器语言效率更快,机器语言精确控制机器硬件,控制流程效果,好可移植性不好。c可移植性较强,代码可读性很强而且思路清楚,只是初学学C语言不太好入门吧...
作者: 电子爱好者呀    时间: 2020-7-2 21:23
C语言编程简单但单片机运行效率低,汇编编程复杂但单片机运行效率高。在比较追求效率的地方一般用汇编编写程序。
作者: 魏海龙    时间: 2020-7-7 11:26
我个人感觉C语言对面我们容易入门。
汇编编程复杂,要是我学是学不下去的。

作者: yanlei_0    时间: 2020-7-7 13:58
c语言灵活,通用性强,编写起来爽歪歪。汇编嘛你懂的,即机器语言,芯片指令集很少接触。
作者: ld2020    时间: 2020-7-7 14:39
支持C语言 入门容易 掌握的是跨平台可移植编程的方法 汇编难学 不可移植
作者: Cybers    时间: 2020-7-7 18:16
C语言编程效率高,不需要了解MCU的指令;
ASM编译效率高,需要了解MCU的指令和寄存器。
作者: 春风十里吹    时间: 2020-7-7 18:28
用习贯,顺手了就没有分别人
作者: yinchengjun    时间: 2020-7-7 19:33
C语言可移植性强太多
作者: juncedz    时间: 2020-7-8 00:01
精通汇编程序编译后比C代码少,汇编程序不容易移植。
C程序容易看懂,可移植,编译后代码多好多。
单片机的选择价格有的型号区别很大。

作者: 一点不通    时间: 2020-7-8 12:03
以后做产品的方向不一样,C的话主要是大型的系统,编程对象也是资源非常丰富的单片机或ARM。汇编很多用于成本敏感产品,片内资源少但又必须要较复杂逻辑控制。
作者: 乐儿翅    时间: 2020-7-12 20:57
c语言很基础,汇编语言使用范围广
作者: 3055346567    时间: 2020-7-26 16:15
汇编跑得快,C语言简洁。
作者: 上官赵    时间: 2020-7-26 18:52
c语言简单,程序移植性好,但执行效率低,代码多;汇编难,但执行效率高,代码少
作者: 漠城    时间: 2020-7-26 19:25
我觉得C语言效率高,汇编的话,现在用的人也少,面对过程和面对硬件编程,在资源过剩的今天前者更好吧
作者: TTQ001    时间: 2020-7-26 23:59
汇编语言是基本原理,可以通过硬件更轻松地对其进行优化,以生成高效的代码。 如果由经验丰富的程序员编写C语言,可能会非常高效,但是C语言易于阅读和调试,因此节省了开发时间。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1