这是我转载摘录的一篇《学习汇编的重要性》

         汇编语言在网络方面的应用

网络工程一班  0925113037  唐金

(2011.05.30)

一 汇编语言介绍

汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。

汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

二 汇编应用

汇编语言一般可以做3类事情:硬件嵌入式开发,软件嵌入式开发,应用程序
还可以参与:加密解密,病毒分析,写病毒,逆向工程等等。汇编在网络编程中一个重要的用途就是写shellcode,另外汇编可以写网络驱动中C/C++不好些的部分。汇编语言作为最基本的编程语言之一,汇编语言虽然在网络工程方面的应用范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿Linux内核来讲,虽然绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux的启动部分。由于这部分代码与硬件的关系非常密切,即使是C语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。

1.70%以上的系统软件是用汇编语言编写的。

2.某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。

3.某些高级绘图程序、视频游戏程序是用汇编语言编写的。

  汇编语言是理解整个计算机系统的最佳起点和最有效途径,人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。


你可能感兴趣的:(汇编,assembly)