单片机C语言与汇编的区别
建议你用C,优势主要由以下几点:
第一:因为C比较好理解。同时也比较容易入门。但是这有个前提:C必须要很熟悉,其实C入门是非常容易的,只要花1天时间就可以,现在有人称C是一种快餐,可见是一种容易入门的东西
第二:开发单片机的话C已经成为主流,他的移植性,即通用性比较好,比如说同一个程序在这款单片机能用,在另外一款单片机同样能用,这样可以避免重复的工作,而汇编就不行。
第三:当你用C都可以得心应手了,再去看汇编代码就很容易了,因为每一款单片机都有自己的汇编指令,这个时候你用到哪款单片机就去熟悉一下该款单片机的汇编指令,这花不了几个小时。注:在某些场合用汇编是因为可以写出质量更高的代码,并不是一定要用汇编,但就整体而言,大部分还是C写成的,只不过嵌入了一点汇编而已,也就是所谓的混合编程。
以上为个人的看法,仅供参考。
楼上说的对,在学校我们学习单片机一般是用汇编,因为他可以帮我们很清楚的了解单片机的每一块芯片的内部结构和每一个管脚的含义和用法,但是假如你想很快的学会怎么使用单片机的话,根据我个人的经验,你可以从c语言入手,只是了解每个管脚的用法就行,不必了解每一个芯片的内部是怎么工作的,这样边用c语言编程边学单片机,遇到什么不懂的问题再回头查一下每一个芯片的用法,这样学东西是最快的而且学得很深,能学到很实际的东西,而且用c语言编程比汇编要简单很多,毕竟c是高级的语言,但是c语言也有一个缺点就是他的速度比不上汇编语言,假如你对速度有要求,或是实现一个计算功能的单片机,选择汇编要好一些,虽然麻烦,但是汇编能编出最优化的程序,个人经验,本人也是学单片机的,希望能帮到你,同意的话请赞一个
1:c语言写的单片机程序,先由1个程序(好像是c51.exe)编译,编译完成后,变量的存储空间大小已经安排好,只是还没分配具体地址(地址浮动),接下来有另一个程序(好像是a51.exe)进行连接,连接以后,具体地址确定
回收代码?应该是回收存储空间
如果变量过多,编译会提示数据段too large,要保证其没有内存溢出错误,主要考虑堆栈是否溢出,要靠经验
单片机c语言一般禁止递归,如果一定要,需要加修饰符ree....(笔记的怎么拼了,书上有的),中断函数禁止递归。一般都避免用递归运算,单片机毕竟不是PC,会影响速度的,要递归的话,用DSP芯片更合适,总之,要会挑合适的芯片
2:
变量的大小(位数)一般和芯片累加器的位数一样,比如51常用8位的,因为它是8位单片机
单片机可以定义位变量,但是不可以定义位数组
用c语言写只是看着简单,实际生成的代码量是最多的,用于控制的单片机几乎不用浮点数运算,不仅慢还麻烦还占地方,如果是DSP芯片,本身有适合的硬件结构,会好很多
3:
一般是自动分配的,
可以c语言和汇编语言混合编程,也可以用Keil C在线汇编
多看几本书,多多练习
Keil C可以反汇编,有兴趣可以研究研究
单片机的汇编语言和C语言有什么区别?
1、针对存储器不同。MOVX和MOVC是针对两种不同的存储器而言,一个是片外数据存储器,另一个却是程序存储器。2、传递数据的对象不同。MOV:单片机内部的寄存器或者存储器之间相互传递数据(内部RAM);MOVX:单片机内部的A累加器与片外的数据存储器(片外RAM)传送数据。MOVC:单片机内部的A累加器向RO...
单片机编程语言一般有哪几种
2.单片机的C语言 单片机的C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言具有功能丰富的库函数,运算谏磨快,编译效率高,有良好的可移植性,而且可以实现直接对系统硬件的控制。此外,C语言程序具有完整的程序模块结构,从而为软件开发中栗用模块化程序设计方...
关于单片机用什么语言写代码最好.用汇编还是用C还是用C++的好呢.学得...
千万不要用汇编写(首先我是这样忠告,但也不排除核心代码和部分代码是要用汇编的)。至于用那种语言,要看你的编译器了,还是建议用c语言,毕竟支持c的是最多的,可移植性也是不错的(不同芯片不一样)。现在的单片机已经越来越高档化了,内存,速度都很快了,不必要用汇编去浪费时间(单片机用汇编...
单片机需要学汇编语言还是c?
汇编运行稳定,执行效率高,需要你对硬件了解很多,属于针对芯片进行定制的类型,缺点是不便于移植,如果更换一种品牌的芯片甚至更换一款另外一同品牌不同系列的芯片,程序都几乎作废,难以利用。C语言属于高级语言,类似与硬件无关的语言,有点是兼容性好,便于移植,便于模块化。可以跨厂商,跨系列稍加修改...
汇编语言跟单片机的指令系统有什么区别??
如果只是编计算机软件只要掌握C语言就够了 要是用于编写单片机片内程序 就要掌握硬件原理以及接口 基本和用汇编差不多 只是语言格式上的区别 汇编语言其实仍然是机器语言,虽然看起来是英文,但实际上汇编语言中差不多每一句指令都单独对应一句机器语言指令,这就好比汉字的"一"对应阿拉伯数字"1"一样,只有一...
汇编语言在单片机中是否通用
汇编语言实际就是机器语言的助记符,只能适用于某一类单片机,不能通用。若学硬件的人,汇编语言比c语言简单,但是学软件的人,c语言更简单。主要是,对于初学者来说,c语言需要有一个转化为机器语言并优化的一个过程,这对于单片即这类有很严格硬件限制的嵌入式系统来说尤为重要。
学习单片机是用汇编语言好呢?还是用c语言好呢?
C相对来说写起来代码少一些,不用考虑寄存器分配,C会自己分配,但相对来说寄存器分配不够直接。如果需要调试,跟踪起来,相对汇编还是有优势的,可以跟踪寄存器的值,因为寄存器都是自己定义的,比较直接,控制硬件也比较直观。C相对容易读写。对于新手,相对来说,C容易上手和理解,在算法上也有自己的函数...
怎么看单片机里边的程序使用什么语言编程的呢?
所有的编程语言 不管是汇编还是C 都需要编译成机器码进行烧写的,你读出来的是机器码。只能通过反汇编软件将其翻译到汇编的模式,如果编程人员用的是汇编,你翻译的汇编有肯定和他写的不完全一样,如果他用的是C 那就肯定不一样了,C编译到汇编有效率问题,可能编译不同的汇编(功能是一样的),你...
单片机C51,汇编语言与C语言哪个更好应用于实际一些?写程序哪个更容易入...
汇编语言,因为汇编语言是直接指导单片机运行的,占内存小,直接,快捷,但就是系统可移植差,只针对一个系统
单片机原理及应用难学吗?
单片机原理及应用需要学习低级汇编语言和C语言。学习具有一定难度。但只要有恒心是一定能学好的。1)编程语言:a)汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号...
坚韩氯沙: 汇编写的程序(采用的是直接寻址的方式)优点是运行起来比C的要直接要快些,占用空间也小.C写的程序优点是可移植性好,一个程序稍加修改就可以移植到不同的单片机里使用,比较适合团队一起开发的项目,这些方面汇编是不容易做到的.首先要了解汇编的知识,作为源程序的储备,还是建议用C,这样可以需要的时候做移植就可以,不必再重复写.
宁波市13553993080: 单片机C语言与汇编的区别 - ?
坚韩氯沙: 1:c语言写的单片机程序,先由1个程序(好像是c51.exe)编译,编译完成后,变量的存储空间大小已经安排好,只是还没分配具体地址(地址浮动),接下来有另一个程序(好像是a51.exe)进行连接,连接以后,具体地址确定 回收代码?应该...
宁波市13553993080: 单片机汇编语言c语言有哪些区别??
坚韩氯沙: 对于单片机来说,因为最后都要生成.hex文件(即机器码)所以其实没什么区别,但对于程序本身而言,越接近机器码的语言耗费的资源就越少,汇编就比C语言更接近机器语言啦,而对于编程人员来说,越接近人类的语言就越容易接受,C语言就比汇编更容易掌握啦.而且C语言容易移植方便开发,现在一般都是用C语言来做开发的,而汇编也有自己的优势,就是时间精确,所以现在一般都是用汇编嵌套C语言的做法去开发单片机的
宁波市13553993080: 单片机汇编语言和C语言有什么区别 - ?
坚韩氯沙: 一个低级,一个高级一点,你说了.其实我有一个很通俗的理解,就是每一个C语句就是一个汇编子程序.这个你能理解吗?
宁波市13553993080: c语言和汇编语言的区别? - ?
坚韩氯沙: C语言是需要经过机器语言解释和翻译才能被硬件执行的高级语言. 汇编是一种直接对于硬件操作的语言,属于低级语言,面向硬件. 另外:两种语言的语法也是完全不同的.你可以在网上找一些例子看看就知道区别了.
宁波市13553993080: C语言和汇编语言在单片机上使用有什么不同?
坚韩氯沙: 大家都知道单片机也是一种计算机、、只是在一个集成电路上含有处理器、存储器、IO接中,结构简单而运用方便 作为计算机在执行程序的时候都必须转化为自己的语言:即二进制代码也可以说机器码、不管是用c写的程序还是用汇编写的程序.都要经过汇编过程.而这种汇编过程又都在人们的操作下完成的.如果是用汇编写的程序则在汇编的过程中比较简单也比较方便一点.一般现在学单片机应用时都是学汇编的. 还有就是刚才提到的单片机的结构简单.在一开始的单片机的中有的型号的ROM只有128KB容量算是比较小的.所以用汇编更好. 总而言之最后所执行的功能是一样的.
宁波市13553993080: 单片机C语言与汇编语言各有什么特点? - ?
坚韩氯沙: 首先,单片机在初始发展的时候应用的都是汇编语言,汇编语言属于低级语言,但是也有它特色的地方,更加的贴近硬件,你要搞清楚你的数据要存哪里,变量再哪个位置,cpu运行时时寄存器的变量变化等等,也让你更清楚单片机里的一些资...
宁波市13553993080: 单片机用C51和汇编语言写程序的区别 - ?
坚韩氯沙: 仅仅是语言本身的区别,一个是用C语言,一个是用汇编语言若干年前汇编相对于C语言有性能上的优势,因为每条指令与机器马直接对应,做优化容易控制些.但如今编译器越来越强大,优化的结果也越来越好,汇编这点优势就不明显了.而C语言相对于汇编来说它的优势就在于它是高级语言,语法上更平易近人,也更易于读写,比如一个简单的加法操作://C语言 a = 1 + 2;//汇编 mov eax, 1 add eax, 2 mov a, eax你看哪个更容易读懂
宁波市13553993080: C语言程序与汇编程序有何区别! - ?
坚韩氯沙: C语言是高级语言,具有较好的可读性,但是C语言还可以操作内存和设备,所以还有人把它认为是高级语言中的低级语言. 汇编语言是低级语言.
宁波市13553993080: 单片机开发用C和汇编语言各有什么优缺点 - ?
坚韩氯沙: 单片机开发用C和汇编优缺点对比如下: 1、C可以读性较强,容易让后继者接手进行扩展,汇编相对而言难度就大多了,一般人很难短时间内弄懂原开发者的原意和理清思路. 2、C可移植性较强,一个单片机的程序稍加修改,可以移植到其他环境下使用,汇编程序几乎无法移植. 3、汇编的时序性很强,可以精确严格按既定时序控制流程,C无法做到. 4、汇编可以精确定时,C只能初略定时.