模拟器件-->数字器件
ASIC-->可编程器件
CPU在固定频率的时钟控制下节奏运行。
CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行。
这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM公司)定义的,本质上是一串由1和0组成的数字。这就是CPU的汇编指令集。
程序员用汇编指令编程-->经过汇编器汇编成二进制可执行程序文件-->二进制文件被CPU读取进去-->CPU内部电路对二进制文件解码-->解码通过则CPU执行指令、完成指令动作。
如果程序员用C语言等高级语言编程,则编译器先将C语言程序编译为汇编程序,在进行上面的后续部分。
汇编难写,C好写。
汇编无可移植性,C语言有一定的可移植性,Java等更高级语言移植性更强。
汇编语言效率最高,C语言次之,Java等更高级语言效率更低。
汇编不适合完成大型复杂的项目,更高级语言更适合更大、更复杂的项目。
汇编的实质是机器指令(机器码)的助记符,是一种低级符号语言。
机器指令集是一款CPU的编程特征,是这款CPU的设计者指定的。CPU的内部电路设计就是为了实现这些指令集的功能。机器指令集就好像CPU的API接口一样。
纯机器码编程
汇编语言编程
C语言编程
C++语言编程
Java C#等语言编程
脚本语言编程
汇编语言就是CPU的机器指令集的助记符,是一款CPU的本质特征。
不同CPU的机器指令集设计不同,因此汇编程序不能在不同CPU间互相移植。
使用汇编编程可以充分发挥CPU的设计特点,所以汇编编程效率最高,因此在操作系统内核中效率极其重要处都需要用汇编处理。
complex instruction set computer复杂指令集CPU
CISC体系的设计理念是用最少的指令来完成任务(例如计算乘法只需要一条MUL指令即可),因此CISC的CPU本身设计复杂、工艺复杂,但好处是编译器好设计。CISC出现较早,至今Inter还一直采用CISC设计。
Reduced instruction-Set computer精简指令集CPU
RISC的设计理念是让软件来完成具体的任务,CPU本身仅提供基本功能指令集。因此RISC CPU的指令集中只有很少的指令,这种设计相对于CISC,CPU的设计和工艺简单了,但是编译器的设计变难了。
早期简单CPU,指令和功能都很有限。
CISC年代——CPU功能扩展依赖于指令集的扩展,实质是CPU内部组合逻辑电路的扩展。
RISC年代——CPU仅提供基础功能指令(例如内存与寄存器通信指令,基本运算与判断指令等),功能扩展由使用CPU的人利用基础架构来灵活实现。
一般典型CISC CPU指令在300条左右。
ARM CPU常用指令在30条左右。
没有纯粹的RISC和CISC,发展方向是RISC与CISC结合,形成一种介于二者之间的CPU类型。