主题:[讨论]汇编和C语言哪个好?
汇编语言和C语言哪个更好呢?哪个更适合作为单片机程序语言呢?对于这个问题,单片机初学者都会感到很疑惑。
现在普遍用C的比较多,因为C有很好的结构性与模块化,,C比汇编更容易阅读与维护,而C功能化的代码有更好的移植性,方便从一个工程移植到另一个工程,而且C更符合人们的思考习惯。既然你汇编与C都学过,那你一定知道汇编在编程时往往要考虑细节问题,长的程序如几百行甚至上千行的代码你在调试时由于汇编的可读性较差,会花费大量的时间来调试。往往是一个小细节问题会让你搞半天,而结构化的C往往只需要考虑算法而无需过多考虑细节问题,同时可读性好,调试时间也大大减少。特别是在编写较大工程时,C用起来比较顺。
每种单片机基本有其自身一套机器语言,有些相差不大,有些相差比较大,所以你在使用不同单片机时要先了解其汇编语言,与单片机的内部硬件结构,但C就不存在这个问题,只要了解单片机的相应功能的寄存器,就可以编程。基于上述C的优点,现在市场C的需求多些。
我的意见是:两种语言都应该能较熟的掌握。因为汇编的优点在于语句执行时序的精确性,执行效率高,对一些时钟要求很高的系统,汇编比较容易实现。如果能做到C与汇编联合编程。市场需求会更大。
对于单片机开发,C语言又扩充了一部分数据类型:
sfr:特殊功能寄存器声明
sfr16:sfr的16位数据声明
sbit:特殊功能位声明
bit:位变量声明
例:sfr SCON = 0X98;(SCON是串行口控制寄存器名称,这里只是举个例子,大家不明白也没关系)
sfr16 T2 = 0xCC;(以0x开头的数据是十六进制的数A代表10,B代表11,以下类推,直至F代表15,字母大小写无所谓)
sbit OV = PSW^2;
C语言开发单片机时需要在开头写上有关头文件,对于头文件,学过C语言的同学都知道,相当于把一些函数或者变量已经声明好,可以直接使用,经常使用的头文件有:
通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h intrins.h(这里不要求全记住,只要用到reg.51或者reg.52即可)
常用有:reg51.h reg52.h
(定义特殊功能寄存器和位寄存器);
math.h (定义常用数学运算);
技术咨询:张老师13926586805 QQ1924786560 单片机嵌入式学习QQ群:16452448
课程设置:
1、嵌入式Linux实训班
2、嵌入式ARM9+Linux实训班
3、嵌入式ARM11+Linux实训班
4、CORTEX-A8+Linux实训班
5、CORTEX-M3/ARM7+UC/OS
6、嵌入式就业班
7、Android开发班
8、FPGA
9、单片机基础培训班
10、C51单片机项目实训班
11、PIC单片机培训班
12、Protel(PADS)实训班
13、电子设计班/数电模电
15、单片机系统工程师实训班
16、嵌入式系统工程师实训班
17、Android系统工程师实训班
18、单独项目指导
服务承诺
同一课程只收一次费用,一期没学会可免费再学,直到学会为准
我们的培训中心就在您身边:南山中心/龙华中心/沙井中心/布吉中心/龙岗中心