1.1.1 机器语言

1.1.1 机器语言

计算机能直接识别并进行处理的是由0、1组成的二进制代码。构成计算机硬件本身的各个部件是基于二值逻辑的,这些部件只能识别0和1两个状态,其功能就是记忆、传输和加工二进制信息0或1。计算机的工作过程就是传输和处理二进制信息的过程。

1.机器指令

机器指令是指用二进制数编码的指令,以指示计算机所要进行的操作及操作对象(数据或数据地址)。每条机器指令控制计算机完成一个操作。机器指令由指令译码器所识别,并经过一定的时钟周期付诸实现,从而完成指令所规定的操作。

机器指令一般由操作码(Opcode)和操作数(Operand)构成。操作码指出指令所要执行的操作,如加、减、乘、除和传送等。操作数指出操作的数据对象。

2.机器语言与指令系统

机器语言是计算机唯一能够识别的语言,只有用机器语言描述的程序,计算机才能直接执行。下面是用Intel 8086/8088CPU机器语言编写的一段代码(十六进制表示):

B024

B344

F6E3

050A00

区区几行代码,若没有注解,很少有人能直接看出它的功能就是计算表达式36×68+10的值。即使对Intel 8086/8088机器语言非常了解,也许还得借助于手册。然而,在计算机诞生的初期,人们就是这样设计程序的。

指令系统(Instruction Set)是指特定计算机上机器指令的集合。机器语言是由指令系统以及机器指令的使用规则构成的。

3.机器语言的主要特点

机器语言主要具有下列两个特点:

机器语言与机器密切相关。

机器语言与计算机的CPU、内存管理机制和I/O机制有着十分密切的关系。通常,不同型号CPU的指令系统往往有较大差异,但同一系列CPU的指令系统常常具有向上兼容性,即较高级别的CPU指令系统是较低级别CPU指令系统的超集。例如,Intel80486指令系统包含80386指令系统。

用机器语言设计程序非常困难,但容易实现高性能。

正是与机器的密切相关性,使用机器语言设计程序能最大限度地利用和发挥计算机的硬件功能和优势,容易得到时间和空间上的最优代码。然而,这种代码可移植性差,不仅难以理解和掌握,而且不易调试和维护,其开发效率也很低,难以胜任大型软件的开发需要。