汇编的实质是机器指令(机器码)的助记符,是一种低级符号语言,机器指令集是一款CPU的编程特征,是这款CPU的设计者制定的,CPU的内部电路设计就是为了实现这些指令集的功能。
任何一行C语言,由编译器编译成不同的机器语言。
而汇编语言,是针对某一个CPU而写的,不能编译到另一个CPU。
比如,C语言的 a = b + c; 编译器可以编译到x86、arm、mips
而X86的
add eax,ebx 就只是X86 汇编的。
而mips的,可能是
add $t0,$t0,$t1
汇编用于底层(比如系统的启动阶段,C语言程序还无法运行)。
C语言用于编写操作系统及其相关(相比于汇编,其具有一定的可移植性,相比于Java等高级语言,其具有高效率)【注释:C语言程序与操作系统有关,不同的平台(Windows、Linux)对C语言做了不同程度的支持和拓展,所谓的拓展即是在原有的C标准的基础上,又设计和实现了高层的api,如果考虑到跨平台的特性,则在开发时应当避免这个某些函数的调用】。
Java、c#等高级语言用于大型项目(可移植性更高)
有句话说得好:“再难的东西,只要在中间加一个层,啥都可以解决”。