查看: 80|回复: 13
收起左侧

哪一个更高效一些

[复制链接]

488

主题

3926

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-7-15 23:12 | 显示全部楼层 |返回版面|阅读模式
大家好,我想知道汇编语言和C语言在编写小程序的时候哪一个更高效一些,我大学学的是C语言,想知道有没有必要再去学汇编
PS我是自动化专业的

478

主题

3886

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:15 | 显示全部楼层 |返回版面

了解一下就可以了

比如能基本看懂编译器的反汇编就可以了(相对简单的程序),因为有时需要查看反汇编排除BUG

478

主题

3886

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:19 | 显示全部楼层 |返回版面


小程序汇编好,大程序C语言好

506

主题

4389

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:24 | 显示全部楼层 |返回版面
无论程序大小,都是C语言好。

506

主题

4053

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:26 | 显示全部楼层 |返回版面

效率分你写程序维护程序的效率和单片机运行的效率两种,看你想要哪一种。

488

主题

3926

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-7-15 23:27 | 显示全部楼层 |返回版面
我对单片机运行的效率高否比较感兴趣,希望能让自己的程序高效的运行,至于维护还没有想的那么远

488

主题

3926

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-7-15 23:29 | 显示全部楼层 |返回版面

而且我想问一下,大家普遍都说C语言用谭浩强的书比较好,那汇编语言呢,各位大神有什么建议吗

411

主题

4277

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:31 | 显示全部楼层 |返回版面
C51有它的优势,汇编也有它的优点。对于绝大多数应用,C51都能够应对。但一些高精的操作,或是严重受到资源限制的型号,只有汇编才能解决。比如,家用电器、手持式电池供电产品,用C51?去死吧!
职场上包括这个论坛上,有很多人很豪气。这两年用C51做了个几万、几十万的项目。而做家用电器的呢?一台才卖50元,显得太渺小、微不足道——尽管那个型号可能卖3000万台。
汇编很难学,不针对实际应用而编程,是不可能学精汇编语言的。

530

主题

4169

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:35 | 显示全部楼层 |返回版面

必要的参考书籍是需要的。我不知道现在还有没有,什么编程实例之类的。其实,要学好、学透汇编,只需要从采用汇编编程的目的这个角度就自然而然、水到渠成了。就是,你在实际应用编程时,一直有个目标:运行时间最短、程序代码最小。
为了达到上述目标,经常采取非正常编程手法。比如,AD574的技术指标是采样频率可达40k。你用汇编可以算出你的程序能否达到25mS就A/D转换一次,这段时间内还包括对外部数据存储器的读写。

514

主题

4347

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:37 | 显示全部楼层 |返回版面

1   AD574我多年未用,不知现在的指标是多少。
2   涉及到外部数据存储器的循环访问,汇编比C51快3倍左右。
3   对外部数据存储器里的数据进行移位操作,汇编比C51快20~30倍。

511

主题

4111

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:39 | 显示全部楼层 |返回版面

运行效率,汇编高。

478

主题

3886

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:40 | 显示全部楼层 |返回版面

目前没必要学汇编。这对以前的我及其重要。汇编太难,差点扼杀当时我对单片机的兴趣。

506

主题

4053

帖子

1万

积分

资深工程师

发表于 2017-7-15 23:42 | 显示全部楼层 |返回版面

先学c,很容易找到兴趣。到一定程度了,自然知道该搞啥

488

主题

3926

帖子

1万

积分

资深工程师

 楼主| 发表于 2017-7-15 23:45 | 显示全部楼层 |返回版面

谢谢大家的指点哈
*滑动验证:
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

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