机器语言:机器语言的每条语句即是处理器可以直接执行的一条指令,这些指令是以二进制0、1序列的形式表示,对应数字集成电路的高低电平。不同的处理器指令的机器代码各不相同,完成的具体功能也将不相同,按着一种计算机的机器指令编写的程序,不能在另一种计算机上执行。
示例:(仅作为示例,不代表真实硬件的机器代码)
指令的机器代码:
0000’0000 STORE
0000’0001 LOAD
地址的机器代码:
0000’0000 ?寄存器R0
0000’0001 ?寄存器R1
优点:功能和代码一一对应,CPU可以直接执行,效率最高。
缺点:只有二进制0、1序列,枯燥,难以辨识。
汇编语言:用简洁的英文字母、符号串来替代一个特定的机器语言指令——二进制0、1序列:用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。汇编语言与机器语言一一对应,所以和机器语言一样对计算机硬件的依赖性很大。

示例:加法运算(分号表示接注释)
MOV ?R1,? R3;
将寄存器R3的值赋予R1
LDR ?R2, [R4]
;将寄存器R4的值代表的地址对应的存储空间的值赋予R2
ADCS R0, ?R1, R2
;将寄存器R1、R2与之前的进位值相加且进位,存储到寄存器R0
优点:汇编语句和机器语言一一对应,助记符与标号往往与实际意义相关,相比于机器语言,更加直观,容易理解,执行效率上类似。
缺点:不同的处理器指令集不同,移植性不好;即使完成简单的数据处理(如累加,简单排序等)所需的代码体积很大,处理实际问题所需的工作量夸张,成本高。
高级语言:使用接近于数学语言或人类语言的表达描述程序。
特点:相比于面向机器开发的机器语言和汇编语言,高级语言拥有较高的可读性,并且代码量大大减少;高级语言通常远离对硬件的直接操作,安全性较高,也有部分高级语言可以使用调用汇编语言的接口操控硬件;高级语言有很多成熟、易于使用、可移植的数据结构与算法,使开发流程大大简化,节省开发成本,易于维护;发展迅速,社区完备,可以很方便地求助,解决遇到的各种问题;已经有很多各具特色、用以解决不同领域问题且发展相当完备的高级语言供开发者选用,如:适合初学者了解编程思想的Basic;效率颇高,接近于硬件操控,适合系统、硬件驱动编程与嵌入式开发的C/C++;跨平台、可移植特性优良的Java;搭配Visual Studio可以快速开发项目的C#.NET;适合于数据分析、人工智能,越来越被青睐的Python;Microsoft公司为未来的量子计算而开发的Q#,等等。诸如MATLAB、HTML、JavaScript这样的用以在不同领域大显身手的语言亦可以称之为高级语言。
示例:加法运算
int a = 1, b = 2, c;
c = a + b;
优点:不依赖于硬件,移植性好;不用场合选用适合的语言,开发效率高。
缺点:不直接使用硬件,需要编译-链接执行或解释执行,没有利用到具体硬件的特点,效率相比于机器语言和汇编语言不高;先天的特点决定了高级语言在底层的设计中无法完全取代机器语言和汇编语言。
可以看出,微处理器系统的核心部件是CPU,使用微处理器系统控制外部的设备工作的实质就是使用编写软件程序的手段来控制外部设备。由于CPU已经是一个完整的、封装好的部件,系统的设计人员只能通过编写软件,再经由编译器或解释器翻译为机器能够理解的代码来执行,CPU并没有专门的硬件电路来实现完全地控制外部设备的运行,这种实现方式是软件实现,是一种通用的实现,控制信号从软件到硬件要经过若干次转化,但有的时候,工程和设计领域往往需要高速高性能的芯片来实现控制与计算,这时候就需要更加强大的CPU或将几个CPU用一些技术并行起来协同工作,成本就会增加。这时候,可以不妨试试设计专门的硬件来满足工作的需求。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-72906-2.html
你妈
正说明没有化学添加剂和防腐剂之类的