汇编语言
汇编语言是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。中国著名计算机科学教育家王爽写过一本名叫《汇编语言》的书。
概况
  汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语
汇编语言
言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASMTASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编
器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。   大多数情况下Linux程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在Linux操作系统中也可以用完全用C语言来实现,再加上GCC这一优秀的编译器目前已经能够对最终生成的代码进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。但实际情况是Linux程序员有时还是需要使用汇编,或者不得不使用汇编,理由很简单:精简、高效和libc无关性。假设要移植Linux到某一特定的嵌入式硬件环境下,首先必然面临如何减少系统大小、提高执行效率等问题,此时或许只有汇编语言能帮上忙了。
优点
  汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:   
二进制码
(1)能够直接访问与硬件相关的存储器或I/O端口;
(2)能够不受编译器的限制,对生成的二进制代码进行完全的控制;
(3)能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁
(4)能够根据特定的应用对代码做最佳的优化,提高运行速度;
(5)能够最大限度地发挥硬件的功能。
缺点
同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:
(1)编写的代码非常难懂,不好维护;
(2)很容易产生bug,难于调试;
(3)只能针对特定的最容易上手的编程语言体系结构处理器进行优化;
(4)开发效率很低,时间长且单调。
特点
汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。   汇编语言的特点:   1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。   2.保持了机器语言的优点,具有直接和简捷的特点。   3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。   4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。   5.经常与高级语言配合使用,应用十分广泛。
   对于不同型号的计算机,有着不同的结构的汇编语言   汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的"汇编程序"中进行加工和翻译,才能变成能够被计算机直接识别和处理的二进制代码
程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,当它被安置在内存的预定位置上,就能被计算机的CPU处理和执行。   汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。