当前位置: 代码迷 >> 汇编语言 >> 应用于单片机中汇编语言和C语言各有什么特点解决办法
  详细解决方案

应用于单片机中汇编语言和C语言各有什么特点解决办法

热度:5602   发布时间:2013-02-26 00:00:00.0
应用于单片机中汇编语言和C语言各有什么特点
初学单片机,一直在用汇编语言编程,但发现有些程序若用C语言编程比较简单。但老师要求用汇编语言,所以一直不太明白为什么。所以向各位高手求助。

------解决方案--------------------------------------------------------
可能一些指令C中没有对应,看我在C区回的关于内嵌汇编的一帖.

另外用汇编可以锻炼以机器指令编码的能力,可以以最优化的方式编写代码.
------解决方案--------------------------------------------------------
我真实体会,老师大多很懒,他们以前是学汇编的,现在不肯去学C,就一直教汇编.
先说说他们的区别,汇编的话,我们可以完全控制CPU的指令,一些简单的逻辑,可以用最快的速度去做到.
用C,有时代码会大些.但方便,简单,比写汇编会快好几倍.
还有更重要的,就是写C不等于写出来的代码就一定比汇编的大.
一些人,写汇编,写得差,一个简单的逻辑,用C写,靠编译器去生成的代码,很小.而某人用汇编,反而写一大串.

在现实工作中,我认识的很多人,都用C的.不会去搞汇编.因为现在已经很少有用C语言写的代码由于太慢或太大而不合要求的了.很多1T的CPU,接22M晶振已经很快.6T那些,接个40M的,也不慢.FLASH又大,几十K都有.根本不用担心switch那些会产生很大的代码而放不下.

像一些32位的乘法除法,用8位机的汇编去写,真会很头痛的,代码太乱,处理起来花时间很多,做产品老板没空去等你.别的公司不知道,反正我们公司,我的朋友,搞了这么久产品,没写过一句汇编的.

但学校要你们学,我觉得是好机会,多学点汇编,对写C也有好处.我也知道一点汇编的,我知道汇编的原理后.写一些C的代码时,我不会计较某几种写法的差异,因为我知道当生成汇编后,代码是一样的.我不用去太执着C代码里的小小差异.
------解决方案--------------------------------------------------------
不过汇编语言还是要懂得看,不会写也不太要紧,像我现在看STC单片机的说明书,里面就很多汇编的示例代码.还好是以前大学里学过汇编,不然一句也不会看的话,也是不好的.
------解决方案--------------------------------------------------------
使用汇编主要是能够更深入的了解单片机,了解单片机的内部框架结构,能够更好的理解机器代码在单片机内部是怎么运行的.
  相关解决方案