汇编语言

1.什么是汇编语言[1]

  汇编语言是指能反映指令功能的助记符表达的计算机语言,它是符号化的机器语言。用汇编语言写出的程序是汇编语言源程序,机器无法执行。必须用计算机配置好的汇编程序把它翻译成机器语言目标程序,机器才能执行。这个翻译过程就是汇编过程。汇编语言比机器语言在编写、修改、阅读方面均有很大改进,运行速度也快,但掌握起来比较困难。

2.汇编语言的特点[2]

  汇编语言采用了助记符来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

  汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机有着不同结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同机型类别的计算机间是互不相通的。

  汇编语言中使用了助记符号,对于用汇编语言编制的程序,计算机不能像用机器语言编写的程序一样直接识别和执行,必须经过预先放人计算机的“汇编程序”的加工和翻译才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序.它被安置在内存的预定位置上后,就能被计算机的CPU处理和执行。

  汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。

  汇编语言指令能够直接控制硬件,例如访问I/O端口;而高级语言不提供对于硬件的控制。高级语言程序的效率取决于编译器翻译高级语言程序的方式,由于编译器必须可以翻译所有可能的高级语言代码,因此在某些情况下编译器翻译出的机器语言可能不是最有效的机器语言。而汇编语言指令和机器语言指令是一一对应的,因此使用汇编语言可以确保代码的高效性。编写一个完整程序可能不能体现汇编语言高效率的优势。若仅编写部分程序,在执行时常常可以获取较高的效率。在多数情况下,汇编语言程序员编写汇编语言程序不是为了实现一个完整的系统或者是一个程序,而仅仅是编写选定的模块。例如,可以通过写出口例程(exit routine)用户化应用程序或操作系统。为了保证与宿主语言程序能正常接口,常常需要用汇编语言编写这样的出口例程。

3.汇编语言的优缺点[3]

  一、汇编语言的优点

  汇编语言的语句与机器语言的指令是一一对应的,因此它具有机器语言的一些特点,其优点如下。

  (1)易于理解与记忆。

  (2)能利用机器指令精确地描述算法,编程质量高。

  (3)所占存储空间小。

  (4)执行速度较快。

  二、汇编语言的缺点

  (1)与机器语言一样,程序通用性差。每一种汇编语言都是为某种特定类型的计算机专门设计的,不同类型计算机的汇编语言不能通用

  (2)汇编语言与机器语言一样都依赖于机器,与计算机硬件直接相关,也是面向机器的语言。

4.汇编语言的应用[2]

  汇编语言作为最基本的编程语言之一,虽然它的应用范围不算很广,但重要性却毋庸置疑,因为它能够完成许多其他语言所无法完成的功能。例如Linux内核的绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux的启动部分。由于这部分代码与硬件的关系非常密切,即使是C语言也会有些力不从心,而汇编语言则能够很好地扬长避短,最大限度地发挥硬件的性能。70%以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。某些高级绘图程序、视频游戏程序也是用汇编语言编写的。

  汇编语言是理解整个计算机系统的最佳起点和最有效途径.人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。机器的逻辑功能、软件系统功能构筑其上,硬件系统功能运行于下。汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理打下技术理论基础;向下为掌握硬件系统的原理打下实践应用基础。学习汇编语言向上可以理解软件,向下能够感知硬件,是理解整个计算机系统的最佳起点。