汇编语言简介

一、机器语言与汇编语言#

计算机程序是由各种程序设计语言根据编程规则实现的,计算机程序设计语言经历了从低级到高级的发展,通常分为三类:机器语言(Machine Language)、汇编语言(Assembly Language)、高级语言(High Level Language)。

机器语言:计算机硬件直接识别的程序设计语言。构成这种程序的是机器指令,机器指令是用二进制编码的指令,即编码中只含二进制 0 或 1,如 111001100011 就是一条机器指令。由于计算机主要由数字电路构成,所以机器指令由计算机直接记忆、传输、识别和加工。

机器语言被称为第一代语言,不仅复杂难记,而且还依赖于具体的机型。可见程序编写难度极大,调试修改困难,无法在不同的机型间移植,如今早已没有人用机器语言写程序了。

汇编语言:一种面向机器的用符号表示的程序设计语言,所以也叫符号语言。和机器语言不同的是,汇编语言用直观、便于记忆和理解的英文单词或缩写符号来表示指令和数据变量,例如:“MOV AX,VAL”是一条传送指令,其中 MOV 是指令操作码,AX 是 CPU 中的寄存器,VAL 是一个变量的符号表示,指令表示将变量 VAL 的值传给 AX。所以汇编指令也叫符号指令,这些符号称为助记符。汇编指令集和伪指令集及其使用规则的统称就是汇编语言。汇编语言被称为第二代语言。

对于 MOV AX,VAL 这样的符号指令,比较简洁易读,但是计算机并不识别助记符,只能识别二进制编码的机器指令,因此需要通过一种翻译程序把汇编语言源程序翻译成机器码,才能提交计算机执行。这种翻译程序叫汇编程序,这种对汇编语言源程序的翻译过程简称汇编。汇编语言的出现,大大改善了编程条件,使更多的人可以进行程序设计了。

尽管用汇编语言编写的程序要比机器代码更容易理解,但每条汇编语言指令均对应一条机器指令,因而与机器语言并没有本质区别,因此汇编语言仍然属于面向机器的低级语言。

为了克服低级语言程序不好理解、编程调试困难,不易移植的弊端,人们迫切希望有一种近乎自然语言或数学表达形式的程序设计语言,使程序设计工作能避开与机器硬件相关,而着重于解决问题的算法本身,于是便产生了高级语言,例如 Basic、C、Java 等。高级语言被称为第三代语言。

用高级语言编写的源程序也必须经过编译和连接,将其转换为机器语言程序提交给计算机执行,或将其转换为一种中间代码,通过解释程序解释运行。

无论用什么语言编程,最终在计算机硬件中执行的程序都是由机器码组成的,因此汇编语言是离机器语言最近的。

二、汇编语言的组成#

汇编语言由以下三类指令组成。

(1)汇编指令:机器码的助记符,有对应的机器码,它是汇编语言的核心。

(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。

(3)其他符号:如 +、-、*、/ 等,由编译器识别,没有对应的机器码。

三、为什么要学习汇编语言#

高级语言易学好用,那为什么还要学习汇编语言呢?

(1)学习汇编语言对于从事计算机应用开发有重要作用。汇编语言程序是由符号指令写成的,本质上还是机器语言,与具体机型的硬件结构密切相关,可直接、有效地控制计算机硬件,运行速度快,程序短小精悍,占用内存容量少。在某些特定应用场合更能发挥作用,如实时控制系统,需要对硬件设备直接进行数据的输入/输出和控制,如在嵌入式系统和智能化仪器的开发中,需要更好地利用有限的硬软件资源,发挥硬件的功能。

(2)学习汇编语言是从根本上认识和理解计算机工作过程的最好方法,通过汇编语言指令,可以清楚地看到程序在计算机中如何一步步执行,有利于更深入理解计算机的工作原理和特点,单纯地介绍计算机的硬件知识或一门高级语言的程序设计是不可能做到这点的。汇编语言把软件和硬件紧密地结合在一起,起到连接硬件和软件的桥梁作用,掌握汇编语言对今后学习其他计算机相关课程非常有利。

(完)

comments powered by Disqus