汇编语言的产生

机器语言

首先,我们了解一下机器语言,机器语言是机器指令的集合。

机器指令就是CPU可以正确执行的命令。实际上就是一列二进制数字。CPU内部将这些二进制数字转变成对应的一列高低电平,然后驱动电子器件进行运算。

CPU具体的工作原理这里就不深入的说了,感兴趣的读者可以自己搜索学习。

我们都知道CPU是一种微处理器,对于不同的微处理器由于硬件设计和结构的不同,会需要不同的电平脉冲来驱动电子器件,进行运算。所以每种处理器都有自己的机器指令集(像x86架构的CPU和ARM架构的CPU就是拥有各自的指令集),这些指令集就是机器语言

所以,对于不同架构的CPU,可使用的机器语言也不同。

汇编语言

早期的程序设计就是用的机器语言,程序员们使用 0、1 数字进行编程。机器语言过于抽象,使用机器语言实现的代码晦涩难懂、不易查错,而且难于记忆和分辨。于是就产生了汇编语言

汇编语言的主体是汇编指令。汇编指令和机器指令是一一对应的,可以理解成把机器指令对应成了便于记忆的书写格式。
例如:

1
2
3
4
机器指令 1000100111011000  
对应的
汇编指令 mov ax,bx
所表示的操作就是:将寄存器BX的内容送到AX中

程序员可以用汇编语言编写源程序,给计算机执行时,要先用编译器将程序员写的 汇编语言 编译为 机器码 ,然后才能被计算机理解并执行。

汇编语言的组成

汇编语言包括3类指令:

  1. 汇编指令:机器指令的助记符,对应特定的机器码
  2. 伪指令:没有对应的机器码,由编译器执行,计算机不执行
  3. 其他符号:由编译器识别,没有对应的机器码,如+、-、*、/等

其中,汇编指令是汇编语言的核心。

存储器

提供给CPU的指令和数据存放在存储器中,这里说的存储器指的是内存,与磁盘不同的是,内存中的数据是可以直接被CPU使用的。

地址总线

CPU通过地址总线来指定存储单元。

数据总线

CPU和各种器件之间是通过数据总线来传送数据的,数据总线的宽度决定了CPU和其它器件之间的数据是传送速度。

控制总线

CPU对外部器件的控制是通过控制总线实现的。控制总线是一些不同控制线的集合,有多少控制线就表示CPU提供了多少种对外部器件的控制,也就是说,控制总线的宽度决定了CPU对外部器件的控制能力。