找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 23638|回复: 212
打印 上一主题 下一主题
收起左侧

单片机我还是习惯用汇编编程,现在还有多少用汇编语言的呢?

  [复制链接]
跳转到指定楼层
楼主
我还是习惯用汇编编程,现在还有多少用汇编语言的呢?
单选投票, 共有 552 人参与投票
12.68% (70)
87.32% (482)
您所在的用户组没有投票权限
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶2 踩1
回复

使用道具 举报

来自 2#
ID:245004 发表于 2019-11-6 17:32 | 只看该作者
    早期由于芯片容量小,价格高,为了节省成本,优化和压缩代码,优选汇编。现如今大多数情况下已经不存在这个问题了,而且代码内容也大多了,当然优选c/c++语言。而且现在写代码也不建议用keil直接写了,都是用VSCode、Atom、Sublime Text3等等编辑,再用keil这些编译工具编译一下,由于“自动补全”和“Snippet"等功能的使用,甚至都不需要记住常用的关键字单词,你输入两、三个字母,一大段函数就出来了,编写程序速度非常快。    对于用到汇编的情况,举个简单的例子:
    假如现在需要用51单片机做一个WS2821灯带的简单控制程序,由于WS2821对控制波形的频率要求很高,直接用c语言很难精确掌握函数的执行时间,因此就需要通过keil μVision 的调试模式查看汇编代码的执行情况,然后查表计算函数每条指令的执行时间,这样才能精确编写控制函数,也可以采用嵌入汇编的形式。


    为什么优选c语言呢,这要去看看c语言的众多优点了,所以平常针对一般应用使用汇编的话,根本就是浪费时间和生命!
    另外现在的公司都是团队工作,移植和协同工作非常重要,自然对语言有一定要求。
    所以汇编和C语言都要会。需要用到汇编的时候用汇编。纯粹用汇编的话,那就要看你的应用场景了。

回复

使用道具 举报

板凳
ID:495014 发表于 2019-3-20 21:48 | 只看该作者
单片机,stm32可以用汇编也可以用c语言,看个人喜欢
回复

使用道具 举报

地板
ID:158375 发表于 2019-3-21 08:59 | 只看该作者
用C还是方便一点吧。
先汇编,再C,中间有个坎:总是用汇编的思维来想C。。。。。。
虽然我觉得汇编很好,可是移植性C要好很多!
回复

使用道具 举报

5#
ID:365802 发表于 2019-3-22 09:42 | 只看该作者
主要是C比较直观.
回复

使用道具 举报

6#
ID:111634 发表于 2019-3-22 10:24 | 只看该作者
用汇编语言的不多了。相对来说,c比汇编有效和方便得多。c不难的!老汇编劝你!
回复

使用道具 举报

7#
ID:460509 发表于 2019-3-22 11:18 | 只看该作者
还是习惯用C语言,个别情况下使用汇编
回复

使用道具 举报

8#
ID:496078 发表于 2019-3-22 13:42 | 只看该作者
汇编对于分析问题,还是不错的;
回复

使用道具 举报

9#
ID:496116 发表于 2019-3-22 14:54 来自手机 | 只看该作者
初学时老师必须让用汇编,然后就习惯了…
回复

使用道具 举报

10#
ID:496323 发表于 2019-3-22 18:54 | 只看该作者
习惯了c语言还有c++语言,不太会用汇编语言
回复

使用道具 举报

11#
ID:426861 发表于 2019-3-23 09:53 | 只看该作者
汇编永不过时,但想成为主流已不太可能
回复

使用道具 举报

12#
ID:310519 发表于 2019-3-23 09:55 | 只看该作者
以前我也这么觉得,现在汇编基本没用了。
回复

使用道具 举报

13#
ID:104472 发表于 2019-3-23 10:50 | 只看该作者
每次都想去好好用下汇编,但是无奈的事,每个项目的不同,会重选芯片,还有就是预定的工期,丝毫没有一点精力去用汇编,而作为电子人,不可能在向以前一样,钻很深的项目,往往一个产品从开始到结束,由以前的5年周期到现在3年周期,甚至更短,研发周期也在不断缩短,需要不断的推陈出新,不断去创新,新的芯片使用成为必然,就更没有精力对一款单片机汇编进行使用了,也不知道是讽刺还是该痛恨自己,用“芯”不专。
回复

使用道具 举报

14#
ID:496726 发表于 2019-3-23 15:22 | 只看该作者
还是用C方便,汇编会麻烦的
回复

使用道具 举报

15#
ID:496769 发表于 2019-3-23 16:01 | 只看该作者
基本不用汇编,太麻烦,老师也不太支持用汇编
回复

使用道具 举报

16#
ID:136106 发表于 2019-3-23 20:46 | 只看该作者
现在绝大多数的单片机程序都是用C语言写的,汇编写的虽说在程序执行起来比较快速和顺畅,但是在一些较为复杂的单片机的程序编写的时候,汇编就会比较繁琐。比如说51的就几个寄存器,用汇编的话记住这几个寄存器的地址和配置方法即可,但是像STM32这样的单片机,用汇编就比较麻烦了。包括用C去写寄存器的方式开发都是很复杂的了,如果你比较喜欢用汇编,那你可以多写写一些底层驱动,或者是硬件的驱动固件之类的。
回复

使用道具 举报

17#
ID:496994 发表于 2019-3-23 22:06 | 只看该作者
C语言的受众可能会广一些吧,它和C++也有相似之处
回复

使用道具 举报

18#
ID:111634 发表于 2019-3-24 11:28 | 只看该作者
C51编程与80C51汇编语言相比,主要具有以下特点: ⑴ 编程相对方便。 用汇编语言编程,几乎每一条指令操作都与具体的存储单元有关,80C51单片机的片内存储空间容量有限,编程之初即需安排好片内存储单元的用途,且一般不宜重复使用。当一些应用项目程序量较大时,片内存储单元有可能捉襟见肘,稍有不慎就将出错,编程相对复杂。而C51编译系统能自动完成对变量存储单元的分配和使用,且对函数内局部变量占用的存储单元,仅在调用时临时分配,使用完毕即行释放,大大提高了80C51片内有限存储空间的使用效率。因此,使用者只需专注于软件编程,不需过多关注涉及的具体存储单元及其操作指令,编程相对方便。 ⑵ 便于实现各种复杂的运算和程序。 C语言具有丰富且功能强大的运算符,能以简单的语句方便地实现各种复杂的运算和程序。相比之下,汇编语言要实现较复杂的运算和程序,就比较困难。例如,双字节的乘除法,汇编语言要用许多条指令操作才能完成;而C51只需一条语句便能方便实现。又例如,循环、查表和散转等程序,C51语句实现起来也相对简单方便(当然C51语句编译转换为汇编语言指令后仍然复杂,只是不用程序员操心,由编译器自动完成罢了)。 ⑶ 可方便地调用各已有程序模块。 已有程序模块包括C51编译器中丰富的库函数、用户自编的常用接口芯片功能函数和以前已开发项目中的功能函数。读者可能会说,汇编程序不也一样可以调用吗?不一样。汇编程序调用时,涉及到模块中具体的存储单元,这些存储单元很可能与主调用程序有重复,会引起冲突而出错。而C51程序函数中的变量一般为局部变量,主函数调用前不占用存储单元,仅在调用时由C51编译器根据存储区域空余情况临时分配,使用完毕即行释放,一般不会发生冲突而出错。因此,C51程序可方便地调用各已有程序模块,减少重复劳动,利于团队合作开发,大大提高编程效率。 ⑷ 可读性较好。 C语言属于高级语言。一条C51语句,会编译为多条甚至许多条汇编指令(例如数学运算和循环程序等),相对来说,C51程序简洁而清晰,可读性较好。 ⑸ 实时性较差。 汇编语言指令每一条对应1~3字节机器码,每一步的执行动作都很清楚,程序大小和堆栈调用情况都容易控制,响应及时,实时性较好。而C51程序并不能被单片机直接执行,需编译转换为汇编语言指令。一条C51语句编译后,会转换成很多机器码,占用单片机片内较多资源,可能出现ROM、RAM空间不够,堆栈溢出等问题;且执行步骤不很明确,有时还会兜圈子,因而实时性较差(参阅例9-3),甚至会因时序配合不好而出错。然而,随着单片机芯片技术的发展,其运行速度和内存容量有了较大提高,这些都为C51的应用创造了有利条件。 需要说明的是,完整的C51是一个较庞大的体系,名词概念较多,语法较复杂多变。欲在相对较短的课时内,完全掌握和熟悉C51是一件比较困难的事情。好在单片机在大多数情况下的主要任务是实时控制,这就大大降低了学习C51的要求和难度。更重要的是,学习本书的目的,不是为了系统学习C语言,而是为了学习单片机C51编程。因此,一般读者只要求重点熟悉和掌握C51中与实时控制有关的常用语句和编程方法,而并不过分追求全面、完整和严密。
回复

使用道具 举报

19#
ID:79133 发表于 2019-3-25 04:20 | 只看该作者
我使用单片机的时候只有汇编,然后就习惯了…
回复

使用道具 举报

20#
ID:65956 发表于 2019-3-25 08:47 | 只看该作者
我原来也是学汇编的,这个对单片机认识要很了解,还有一些算法很麻烦,后来改学C,现在用起来轻松多了,也好写作了,真的,不信你试试,但前提最好有个人帮你指点,不解的帮你理解一下,这样学起来就更快了
回复

使用道具 举报

21#
ID:444327 发表于 2019-4-28 15:06 | 只看该作者
我也学过c,后来学单片机的时候用汇编,觉得汇编和机器的指令更贴合,c的话更偏向于是人的思考,各有利弊吧,然而现在我单片机用的还是汇编......
回复

使用道具 举报

22#
ID:523692 发表于 2019-4-28 15:22 | 只看该作者
C语言比汇编简单,汇编太繁琐了,建议使用c语言
回复

使用道具 举报

23#
ID:240885 发表于 2019-4-29 09:16 | 只看该作者
汇编不会,直接学的C
回复

使用道具 举报

24#
ID:477665 发表于 2019-4-29 12:52 | 只看该作者
现在都是C语言吧
回复

使用道具 举报

25#
ID:420836 发表于 2019-4-30 08:40 | 只看该作者
c语言学起来更快, 而且移植性好, 建议使用c语言
回复

使用道具 举报

26#
ID:447076 发表于 2019-4-30 16:12 | 只看该作者
单片机学校里主要讲汇编,但是个人感觉C语言更加直观,易上手,并且市面上单片机的书用C偏多
回复

使用道具 举报

27#
ID:260597 发表于 2019-4-30 16:29 | 只看该作者
个人习惯吧
回复

使用道具 举报

28#
ID:235200 发表于 2019-9-27 07:47 | 只看该作者
我两者都用,根据编程需要决定
回复

使用道具 举报

29#
ID:185372 发表于 2019-9-27 08:06 | 只看该作者
一直以来用的c语言,至于汇编,虽然我们总工教了一段时间,不过还是没用,毕竟太麻烦,不想c语言可以用英文去理解。
回复

使用道具 举报

30#
ID:276663 发表于 2019-9-27 08:54 | 只看该作者
一听用汇编,感觉你年龄就不小了。
回复

使用道具 举报

31#
ID:601639 发表于 2019-9-27 09:14 | 只看该作者
用汇编?太可怕了,根本看不懂。
回复

使用道具 举报

32#
ID:592524 发表于 2019-9-27 10:21 | 只看该作者
汇编效率高,但花费时间多。
回复

使用道具 举报

33#
ID:617097 发表于 2019-9-27 11:46 | 只看该作者
汇编语言现在用的太少了,C语言凭借它的简明性和可移植性得到了非常广泛的应用,汇编与C的区别就像是三极管与集成电路的区别
回复

使用道具 举报

34#
ID:505032 发表于 2019-9-27 12:18 | 只看该作者
编译的时候,我会盯着汇编代码看,有时间,学学汇编是非常好的事情。
回复

使用道具 举报

35#
ID:349102 发表于 2019-9-27 12:46 来自手机 | 只看该作者
习惯用C吧,C也很简单
回复

使用道具 举报

36#
ID:617274 发表于 2019-9-27 16:56 | 只看该作者
感觉c更方便用得更多吧
回复

使用道具 举报

37#
ID:453974 发表于 2019-9-27 23:16 | 只看该作者
还是C的比较普及
回复

使用道具 举报

38#
ID:86450 发表于 2019-9-28 08:10 | 只看该作者
看你是干什么工作的。 你如果是写应用程序的,用汇编会累死的。你要是写驱动的,也可能用到汇编。你如果是移植内核的 可能用汇编。如果你是自己玩玩的,用汇编挺不错的
回复

使用道具 举报

39#
ID:498638 发表于 2019-9-28 11:03 | 只看该作者
建议你不要再用汇编了,c语言便携有方便,可移植性有强,何乐而不为呢?
回复

使用道具 举报

40#
ID:529540 发表于 2019-9-28 15:57 | 只看该作者
学的c,工作要用汇编然后现学的,因为用汇编可以降低芯片成本,选低端芯片。小项目用的用汇编空间和内存都够用,用C就不行了。 不过一些复杂一点的或高档些的用汇编工作量有点大,也繁琐,比如一些数据技术, 乘除法,用c就是一个运算符的事,用汇编就要写好长一段,麻烦的不得了。
回复

使用道具 举报

41#
ID:446359 发表于 2019-9-30 20:07 | 只看该作者
用c吧,我们师傅都不要求我们会汇编了,说人家开发写汇编的程序编的比一般的人都好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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