汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。
C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。
汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的单片机系列会有不同的汇编语言
而C语言是高级语言,可以实现跨平台。编写程序无需指定CPU的指令执行情况,一段程序可以在不同体系结构的计算机上使用
c语言在编译的时候会进行汇编,转换为机器指令,才可以运行
准确的说,应该是不同指令集的CPU需要编译成不同的机器语言。
目前PC机的CPU的指令集都是一样的,所以,你在你的PC上编译了一份可执行文件,复制到你师兄的PC里面,也可以用,但是复制到平板电脑里,就无法使用了。
就如英语和汉语的区别,你的母语是汉语,就如单片机的母语是汇编语言。英语和C语言就是一种表达语言
C语言是当今最流行的程序设计语言之一,它的功能丰富、表达力强、使用灵活方便、应用面广、目标程序高、可植入性好,既有高级语言的特点,又有低级语言的许多特点,适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。
汇编的低级别语言,优点在于能够对硬件资源进行准确的操作,比如寄存器的使用和数据存储的具体位置。能充分运用硬件资源
缺点当然是编写起来麻烦,程序阅读麻烦
而c则相反,它都是编译器自动分配说需寄存器和数据存储单元,因此编写者不能分配
但c语法简单,程序可读性强
汇编语言属低级语言,而C语言是高级语言,所谓高级语言就是更容易被人们理解的语言,其实汇编语言能实现的功能往往也能通过C语言来实现,甚至用C语言会更简单,但是汇编语言有一个优势是其他任何语言所不具备的,这也是为什么汇编语言一直能在编程中占有一席之地,那就是汇编语言对硬件的直接控制,也就是说他能直接对硬件操作,可以绕过操作系统等等之类。虽然有的领域其他编程也能实现,但是在很多地方往往是汇编语言能更加简单,更加完美的完成。而且学好了汇编语言你就能对cpu是怎么工作的有了清晰的认识,所以学计算机专业的一般都会学汇编语言。
汇编语言是采用助记符号来编写程序的,用辅助符号代替机器语言的二进制码,就把机器语言变成了汇编语言。可以直接同计算机的底层软件甚至硬件进行交互。
编写的代码非常难懂,不好维护,所以出现一些面向过程的语言,C就是其中之一。C是可以说是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作。
汇编语言是用语言直接控制硬件,由硬件间接达到某种控制效果。而C语言是一种比较高级的语言,编写者可以不用去考虑硬件而直接去命令计算机达到这种控制效果。换而言之,汇编语言对描述过程更注重,C语言之类的高级语言更注重描述结果。例如汇编语言中变量的赋值语句为 MOV A B 可以解释为将A寄存器中的值复制至B寄存器。而C语言中直接表示为 b=a,解释为使b=a 芯片都是由门电路构成。门有通有断,对应在计算机代码里是二进制的1或0。如果直接进行人机对话,只能输入由0和1组成的代码才能交流。这样的代码太长,而且难记。所以人们想出一个办法,相互约定,用人们易读懂的特定表达方式去表达特定的计算机代码,再将此表达方式翻译成计算机能直接读懂的二进制代码。这样的一套方便人们表达的表达方式被称为计算机语言。
学习汇编可以更好地理解单片机的硬件原理,工作方式。
你还在学习 必然要从最底层学起 而且要尽量学好
越高级的语言实用越方便 开发效率更高 执行效率更低 但靠硬件速度 效果 功能等可以弥补 主要做较大项目时如果全用底层语言实在太累了
不管什么语言都是个工具 写程序真正重要的是你的思路 你的逻辑 你的想法 你要去哪才是目标 至于开手动档车去还是开自动档车去 那只是手段