汇编语言论文

合集下载

汇编论文

汇编论文

在高级语言盛行的今天,为什么还要学习汇编语言?要想写出极致的高级代码,就学习汇编语言。

——————常规的编程建议汇编语言是一种面向机器结构的低级程序设计语言,汇编语言程序是把机器指令组成的机器语言"符号化",它同机器语言的目标代码一一对应.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的。

至于在很多需要直接控制硬件的应用场合,则更是非用汇编语言不可了。

采用汇编语言进行程序设计,既可以充分发挥机器硬件提供的有利条件,又不像机器语言那样编制出的程序难于辨认,不易修改、维护。

汇编语言仍是各种系统软件(如操作系统)设计的基本语言。

利用汇编语言可以设计出效率极高的核心底层程序,如设备驱动程序。

汇编程序比高级程序高效(执行速度、占用内存少)。

汇编程序能够直接高效地利用机器硬件资源,在一些实用控制系统中更是不可缺少和代替。

学习汇编语言对于理解和掌握计算机硬件组成及工作原理是十分重要的,也是进行计算机应用系统设计的先决条件。

汇编语言是机器指令的助记表示,描述了机器最终要执行的指令序列,是人与机器最直接的沟通语言。

作为一门低级语言,它的重要性常被人忽视。

学习汇编语言能够充分获得底层编程的体验,深刻理解机器运行程序的机理,这使我们在接触复杂变化的计算机知识时变得清晰和顺畅。

在某些情况下,用高级语言编制的程序不能满足要求时,应当使用接近机器语言的汇编语言编制程序,它既可以弥补高级语言程序的某些不足,有可改善用机器语言编制程序的困难.一定要知道,硬件与软件构成了完整的计算机体系。

软件由各种语言编写依托硬件得以执行,如果缺少底层知识就学习高层的课程,当遇到与底层相关的内容时,必将难懂与生涩。

汇编语言与机器指令相应,并能直接与硬件交流。

学习汇编语言不但能感知硬件内部的工作机理,而且可以清晰地观察到芯片之间的协作流程,从而建立底层的知识体系。

汇编论文

汇编论文

论题:在高级语言如此盛行的今天,我们为什么还要学习汇编语言?在学习汇编语言之前就对它的“难度”有所耳闻,我就在想这是一种什么样的语言,比我所学过的C,C++语言还要难吗?那么既然同学们都反映这么难,不能充分领会的话,那我们为什么还要学习它呢?而且,现在的高级语言这么丰富多样,应用方便,那我们为什么还要学习汇编语言呢?带着这些疑问,我开始了这门课的学习,这一刻我打开电脑,通过网上搜索和资料的查找,我开始写这篇关于讨论为什么在高级语言如此盛行的今天,我们为什么还要学习汇编语言。

首先,我们该从一定的高度了解略微的了解一下什么计算机语言。

计算机语言(Computer Language)指用于人与计算机之间通讯的语言。

计算机语言是人与计算机之间传递信息的媒介。

计算机系统最大特征是指令通过一种语言传达给机器。

为了使电子计算机进行各种工作,就需要有一套用以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)。

这些就是计算机能接受的语言。

计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。

电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。

所以人们要控制计算机一定要通过计算机语言向计算机发出命令。

目前通用的编程语言有两种形式:汇编语言和高级语言。

高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的c,c++,pascal,python,lisp,prolog,FoxPro,Delphi等等,这些语言的语法、命令格式都不相同。

高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。

但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。

计算机编程职称论文2200字_计算机编程职称毕业论文范文模板

计算机编程职称论文2200字_计算机编程职称毕业论文范文模板

计算机编程职称论文2200字_计算机编程职称毕业论文范文模板计算机编程职称论文2200字(一):计算机编程语言的发展及应用摘要:本文主要介绍了计算机编程语言的分类情况以及计算机编程语言的发展历程,并对当前主要的计算机编程语言的应用情况进行分析。

关键词:计算机;编程语言;发展研究;应用分析随着计算机技术的发展,如今计算机早已被应用到了各个领域,不仅对社会经济的发展具有重要的促进作用,而且在一定程度上也改变了人们的生活方式,因此研究计算机技术,使其在未来发挥更大的作用非常必要。

在计算机技术的发展和应用过程中离不开编程语言的应用,只有通过编程语言,人才能够与计算机等机器设备交互,对于计算机等设备发出指令,进而使得计算机能够运转。

一、计算机编程语言概要(一)汇编语言汇编语言是一种用英语缩写进行编程的语言,汇编语言执行比较方便,但在运用汇编语言的程序冗长,在編写较为复杂的程序时容易出现错误,因此,汇编语言往往被应用于小程序编写中。

(二)机械语言机械语言则是运用二进制进行编程的编程语言,运用机械语言编程机器能够快速识别,且运行速度也相对较快,相对编程语言而言,机械语言的应用范围更广,尽管如此,机械语言同样具有一定的缺陷,应用范围有所限制。

(三)高级语言高级语言是指多种编程语言结合的总称,高级语言能够实现多条指令的整合,将其转化为一个指令进行执行,正是由于高级语言的这一优势,在程序执行过程中,很多细节和步骤被省略,使得程序的运行更为简洁和迅速,对于编程操作的要求也相对较低,这使得计算机编程人员的要求大幅下降,使得更多的人能够进行编程操作。

二、编程语言的发展20世纪40年代,美国研发出了世界上第一台计算机,当时的计算机不仅占地面积大,而且操作极为不便,必须通过多为专业人员同时进行人工操作才能够完成,基于这一背景,美国计算机研究人员开始着手研究能够与计算机进行交互的编程语言,从而使得计算机能够自动完成一系列指令,早期的计算机编程语言的形式较为简略,还存在诸多不完善的地方,但经过几十年的发展,计算机编程语言的种类更加多样,能够适应不同的计算机编程要求。

汇编语言程序设计课程论文

汇编语言程序设计课程论文

汇编语言程序设计期末论文题目:汇编语言程序设计课程论文学院:理学院二○一三年十二月汇编语言程序设计课程论文摘要:汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

汇编语言,作为一门语言,对应于高级语言的编译器,需要一个汇编器来把汇编语言原文件汇编成机器可执行的代码。

高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。

现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows 的应用程序也是可行的,但这不是汇编语言的长处。

汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

与我们学过的C语言相比,C语言是一种结构化的高级语言,执行效率远没有汇编语言高。

很多情况下,使用C语言编写会出现ROM空间不足、堆栈溢出等问题,而对于汇编语言,一条指令就对应一个机器码,每一步怎么执行都很清楚明了,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。

关键词:编汇应用程序存储器低级 CPU汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。

是能完成一定任务的机器指令的集合。

常说汇编语言过时,是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是程序员必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。

只是,现在计算机最大的领域为IT软件,也是我们常说的 Windows编程,在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序是成倍的优秀,但是代价是需要更长的时间来优化,如果对计算机原理及编程基础不扎实,实在是得不偿失,对比现在的软件开发,已经是市场化的软件行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花上几倍甚至几十倍的时间,不如使用其它语言来完成,只要最终结果不比汇编语言编写的差太多,就能抢先一步完成,这是市场经济下的必然结果。

汇编论文

汇编论文

在高级语言盛行的今天为什么还要学习汇编语言高级语言是从人类的逻辑思维角度出发的计算机语言,抽象程度大大提高,需要经过编译成特定机器上的目标代码才能执行,一条高级语言的语句往往需要若干条机器指令来完成。

高级语言独立于机器的特性是靠编译器为不同机器生成不同的目标代码(或机器指令)来实现的。

那具体的说,要将高级语言编译到什么程度呢,这又跟编译的技术有关了,既可以编译成直接可执行的目标代码,也可以编译成一种中间表示,然后拿到不同的机器和系统上去执行,这种情况通常又需要支撑环境,比如解释器或虚拟机的支持,Java程序编译成bytecode,再由不同平台上的虚拟机执行就是很好的例子。

所以,说高级语言不依赖于机器,是指在不同的机器或平台上高级语言的程序本身不变,而通过编译器编译得到的目标代码去适应不同的机器。

从这个意义上来说,通过交叉汇编,一些汇编程序也可以获得不同机器之间的可移植性,但这种途径获得的移植性远远不如高级语言来的方便和实用性大。

虽然这样,但是汇编也有着高级语言没有的一些优点。

汇编语言改变了20世纪的历史。

与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘、坐在显示器面前,甚至使用鼠标、语音识别。

我们可以使用键盘、鼠标来驾驭“个人计算机”,而不是和一群人共享一台使用笨重的继电器、开关去操作的巨型机。

相比之下,我们的前辈不得不使用机器语言编写程序,他们甚至没有最简单的汇编程序来把助记符翻译成机器语言,而我们可以从上千种计算机语言中选择我们喜欢的一种,而汇编,虽然不是一种“常用”的具有“快速原型开发”能力的语言,却也是我们可以选择的语言中的一种。

每种计算机都有自己的汇编语言——没必要指望汇编语言的可移植性,选择汇编,意味着选择性能而不是可移植或便于调试。

这份文档中讲述的是x86汇编语言,此后的“汇编语言”一词,如果不明示则表示ia32上的x86汇编语言。

汇编语言是一种易学,却很难精通的语言。

计算机汇编语言课程教学改革与研究的论文

计算机汇编语言课程教学改革与研究的论文

计算机汇编语言课程教学改革与研究的论文计算机汇编语言课程教学改革与研究汇编语言课程是计算机专业的一门基础主干课程,该课程与计算机硬件系统密切相关。

主要介绍80x86cpu的指令系统、寻址方式、工作原理。

通过该课程的学习,培养学生使用汇编语言编写程序的能力。

加深学生对计算机内部运行机制的理解,为学生开发系统软件和与硬件相关的软件打下坚实的基础。

一、汇编语言课程教学现状分析1.与计算机硬件相关,课程难度大汇编语言课程是以特定的计算机硬件为基础的,现在我国高等学校中普遍以80x86cpu 系列计算机作为教学模型。

首先介绍80x86cpu的工作方式、指令系统、寻址方式等与硬件有关的知识,然后讲解汇编语言的编程方法和技巧,最后介绍系统输入/输出功能调用和有关文件的编程方法。

汇编语言课程通常开设在大学的第三学期或第四学期,学生只有高级语言的基础,习惯于高级语言的自然表达形式。

学生具备的计算机硬件的知识非常少,所以学习汇编语言课程时会感到非常困难,难于适应复杂的低级语言。

特别是在开始学习阶段,许多学生经常混淆寄存器、内存,地址、内容等基本概念。

2.课程内容单一,学生学习兴趣不足目前多数高校讲授汇编语言课程的主要目标是使学生掌握一种编程语言。

因为汇编语言比较难学,如果在教学中单纯强调掌握编程技术,学生可能失去学习该课程的兴趣。

在汇编语言中既没有分支语句也没有循环语句,学生必须使用比较指令和条件转移指令来构造出分支结构和循环结构。

学生更愿意选择易于理解和编写程序的高级语言,如c、c++、java等。

不喜欢使用复杂的汇编语言来编写程序。

学生不了解汇编语言与其他课程的关系,只是把它当作一门必须参加考试的课程对待。

二、汇编语言教学改革的思想和方法1.明确课程的目标根据汇编语言教学大纲的要求,掌握一种基于硬件的汇编语言编程技术是课程的基本目标和要求。

在教学中可以将汇编语言与一种高级语言(如c语言)进行比较,通过学习汇编语言使学生更深刻地理解高级语言的工作原理。

单片机论文 汇编语言

单片机论文       汇编语言

摘要单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

本文是基于ATMEL公司89系列的标准型单片机AT89C51 设计的动态数字显示电路,在生活中有着广泛应用。

本文旨在通过结合89C51系列芯片,完成汇编程序编程,完成特定的功能,以此来熟悉51系列芯片内部结构及特性。

这次,我设计的动态数字显示器,以动态扫描方法来完成程序的设计。

其中还会运用到keil uvision3软件对程序进行编译仿真。

以此来达到实验所需要的结果:当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。

一、原理以及89C51内部结构1.1动态数字显示原理:AT89C51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可为定时器和外部计数方式。

T1还可以作为其串行口的波特率发生器。

定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。

定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。

定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。

定时器的编程包括:1)置工作方式。

2)置计数初值。

3)中断设置。

4)启动定时器。

定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。

在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。

定时器T0和T1对应的中断矢量地址分别为000BH和001BH。

基于52单片机电子时钟的设计论文(纯汇编语言编写)

基于52单片机电子时钟的设计论文(纯汇编语言编写)

编号单片机课程设计(2013 级)题目:基于52单片机电子时钟的设计学院:物理与机电工程学院专业:电子信息科学与技术作者姓名:陈✘✘党✘✘杜✘✘指导教师:张✘✘职称:教授完成日期:2016 年7 月 2 日二〇一六年七月基于52单片机电子时钟的设计摘要本次设计的多功能时钟系统采用STC89C52单片机为核心器件,利用其定时器/计数器定时和记数的原理,结合液晶显示电路、时钟芯片DS1302电路、电源电路以及按键电路来设计计时器。

将软硬件有机地结合起来,使得系统能够实现液晶显示,显示有年、月、日、时、分、秒以及星期,还可以设置闹钟和整点报时。

其中软件系统采用单片机汇编语言编写程序,包括显示程序、闹钟程序、中断、延时程序,按键消抖程序等,并在keil中调试运行,硬件系统利用PROTEUS 强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。

关键词:STC89C52芯片;时钟芯片DS1302;单片机汇编语言;液晶显示电路1 设计任务及要求分析1.1 设计任务:基于单片机的电子时钟设计1.2 要求:1.2.1 用LCD液晶作为显示设备1.2.2 可以分别设定小时、分钟和秒,复位后时间为 00 00 001.2.3 能实现日期的设置年、月、日1.3 扩展要求:如闹钟功能、显示星期、整点音乐报时等2 系统方案2.1 系统整体方案的论证电路原理设计是基于小系统板包括电源电路、复位电路、按键电路、DS1302时钟电路、液晶显示驱动电路、输出控制电路。

电源部分是用电池来提供的3v-5v,晶体振荡器采用的是12MHz的石英晶体振荡器。

整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。

时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。

系统设有4个独立式按键可以对时间年、月、日和星期进行调整,还可以设置闹钟。

具体如图2.1所示:图2.1 系统整体框图3硬件设计与实现3.1单片机最小系统STC89C52是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科课程论文Course Paper论文编号Paper No:撰写日期Date: 2012-01-01汇编的总结Paper Title in English姓名(计算机及信息工程学院计算机科学与技术专业2年级学号)论文类型Paper Type: 研究总结Summary of Focused Research论及主题Subject Covered:□□■□□巢湖学院汇编的总结姓名(计算机及信息工程学院计算机科学与技术专业 2年级学号)Email: @摘要:作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。

就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux 的启动部分。

由于这部分代码与硬件的关系非常密切,即使是 C语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。

关键词:编汇应用发展汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。

是能完成一定任务的机器指令的集合。

常说汇编语言过时,是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是程序员必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。

只是,现在计算机最大的领域为IT软件,也是我们常说的Windows编程,在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序是成倍的优秀,但是代价是需要更长的时间来优化,如果对计算机原理及编程基础不扎实,实在是得不偿失,对比现在的软件开发,已经是市场化的软件行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花上几倍甚至几十倍的时间,不如使用其它语言来完成,只要最终结果不比汇编语言编写的差太多,就能抢先一步完成,这是市场经济下的必然结果。

汇编语言(6张)但是,至今为止,还没有程序员敢断定汇编语言是不需要学的,一个不懂汇编语言的程序员,只是三流的程序员,这是大部分人的共识,同时,技术汇编语言(Assembly Language)是面向机器的程序设计语言精湛的汇编程序员,已经脱离软件开发,挤身于工业电子编程中,一个电子工程师,主要开发语言就是汇编,c语言使用只占极少部分,而电子开发工程师是千金难求,在一些工业公司,一个核心的电子工程师比其它任何职员待遇都高,对比起来,一般电子工程师待遇是程序员的十倍以上。

这种情况是因为现在学习汇编的人虽然也不少,但是真正能学到精通的却不多,它难学,难用,适用范围小,虽然简单,但是过于灵活,学习过高级语言的人去学习汇编比一开始学汇编的人难得多,但是学过汇编的人学习高级语言却很容易,简从繁易,繁从简难。

总之,汇编语言是程序员的必修语言。

目前国内最好的汇编网站是“AoGo汇编小站”。

其站长aogo,就是一个在工业方面有所成就的工程师,有意者可多参考。

其次就是罗云彬的汇编站点:这个大概是国内建站时间最长的汇编站点,其编写的《Windows 下汇编语言程序设计》一书。

是站长十几年的经验的集合,不妨看看。

熟悉指令,可以尝试破解,加强兴趣,参考看雪学院,国内最好的破解组织,其中看雪与众高手打造的破解书《加密解密完全方案》非常有名。

汇编语言是一种低级的程序语言可直接控制硬件。

汇编语言是计算机最底层的语言,现在一般都用在硬件层,对硬件直接控制,其他的都用高级的语言编写了,因为汇编写程序容易出错,而且太过于复杂和长啦,虽然引入了其他的有类似高级语言的一些伪指令但是相比高级语言可以解决的问题都不用汇编啦。

好像现在的计算机已经增加了对C++还是什么语言(反正就是高级语言)的支持啦,就是开集的引导程序已经不用汇编啦(好像只有为苹果apple系统制作的机子有,微软不知道为什么还没,不过不是技术问题,据说有其他目的)。

作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。

就拿Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux 的启动部分。

由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。

按CPU不同的话基本每一种CPU都对应一种汇编,比如Intel出的CPU可以算一个系列的,这些CPU在推出新版CPU的时候会基本保持向下兼容,就是原来低级CPU的指令在高级的CPU上也是一样的,所以说可以算作一类.另外还有单片机的汇编,单片机的指令和PC上CPU的指令是有出入的,所以另作一类按操作系统不同的话可以分为windows下汇编,DOS汇编等,虽然可能在相同的CPU上运行不同的操作系统(比如windows下的dos窗口),但不同的操作系统的程序设计是不一样的,比如在DOS下你不可能去调用windows的API,在windows下也不可能去调用DOS的int 21H中断.另外某些单片机也有操作系统大多数情况下Linux 程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在Linux 操作系统中也可以用完全用 C 语言来实现,再加上GCC 这一优秀的编译器目前已经能够对最终生成的代码进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。

但实现情况是Linux 程序员有时还是需要使用汇编,或者不得不使用汇编,理由很简单:精简、高效和libc 无关性。

假设要移植Linux 到某一特定的嵌入式硬件环境下,首先必然面临如何减少系统大小、提高执行效率等问题,此时或许只有汇编语言能帮上忙了。

汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:能够直接访问与硬件相关的存储器或I/O 端口;能够不受编译器的限制,对生成的二进制代码进行完全的控制;能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁;能够根据特定的应用对代码做最佳的优化,提高运行速度;能够最大限度地发挥硬件的功能。

同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:编写的代码非常难懂,不好维护;很容易产生bug,难于调试;只能针对特定的体系结构和处理器进行优化;开发效率很低,时间长且单调。

汇编当然可以写网络程序啦,高级语言可以做的汇编可以做,高级语言不可以做的汇编也可以做。

IP探测的软件一般都不用汇编,毕竟高级语言可以解决,但是汇编写出来的没有高级语言自身的一些限制,如安全性,可能对权限有限制。

汇编可以应用于单片机,因为他们简单种类繁多,没有操作系统(开发代价大,而且不划算)故用汇编,不过其他的涉及电子的基本上都可以用汇编一方面,汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。

汇编语言程序归纳起来大概有以下几个主要特性。

1、与机器相关性汇编语言指令是机器指令的一种符号表示,而不同类型的CPU有不同的机器指令系统,也就有不同的汇编语言,所以,汇编语言程序与机器有着密切的关系。

由于汇编语言程序与机器的相关性,所以,除了同系列、不同型号CPU之间的汇编语言程序有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU之间的汇编语言程序是无法移植的,也就是说,汇编语言程序的通用性和可移植性要比高级语言程序低。

2、执行的高效率正因为汇编语言有“与机器相关性”的特性,程序员用汇编语言编写程序时,可充分发挥自己的聪明才智,对机器内部的各种资源进行合理的安排,让它们始终处于最佳的使用状态,这样做的最终效果就是:程序的执行代码短,执行速度快。

现在,高级语言的编译程序在进行寄存器分配和目标代码生成时,也都有一定程度的优化(在后续课程《编译原理》的有关章节会有详细介绍),但由于所使用的“优化策略”要适应各种不同的情况,所以,这些优化策略只能在宏观上,不可能在微观上、细节上进行优化。

而用汇编语言编写程序几乎是程序员直接在写执行代码,程序员可以在程序的每个具体细节上进行优化,这也是汇编语言程序执行高效率的原因之一。

3、编写程序的复杂性汇编语言是一种面向机器的语言,其汇编指令与机器指令基本上一一对应,所以,汇编指令也同机器指令一样具有功能单一、具体的特点。

要想完成某件工作(如计算:A+B+C等),就必须安排CPU 的每步工作(如:先计算A+B,再把C加到前者的结果上)。

另外,在编写汇编语言程序时,还要考虑机器资源的限制、汇编指令的细节和限制等等。

由于汇编语言程序要安排运算的每一个细节,这就使得编写汇编语言程序比较繁琐、复杂。

一个简单的计算公式或计算方法,也要用一系列汇编指令一步一步来实现。

4、调试的复杂性在通常情况下,调试汇编语言程序要比调试高级语言程序困难,其主要原因有四:汇编语言指令涉及到机器资源的细节,在调试过程中,要清楚每个资源的变化情况;程序员在编写汇编语言程序时,为了提高资源的利用率,可以使用各种实现技巧,而这些技巧完全有可能破坏程序的可读性。

这样,在调试过程中,除了要知道每条指令的执行功能,还要清楚它在整个解题过程中的作用;高级语言程序几乎不显式地使用“转移语句”,但汇编语言程序要用到大量的、各类转移指令,这些跳转指令大大地增加了调试程序的难度。

如果在汇编语言程序中也强调不使用“转移指令”,那么,汇编语言程序就会变成功能单调的顺序程序,这显然是不现实的;调试工具落后,高级语言程序可以在源程序级进行符号跟踪,而汇编语言程序只能跟踪机器指令。

不过,现在这方面也有所改善,CV(CodeView)、TD(Turbo Debug)等软件也可在源程序级进行符号跟踪了。

综上所说,汇编语言的特点明显,其诱人的优点直接导致其严重的缺点,其“与机器相关”和“执行的高效率”导致其可移植性差和调试难。

所以,我们在选用汇编语言时要根据实际的应用环境,尽可能避免其缺点对整个应用系统的影响。

下面简单列举几个领域以示说明,但不要把它们绝对化。

1、适用的领域要求执行效率高、反应快的领域,如:操作系统内核,工业控制,实时系统等;系统性能的瓶颈,或频繁被使用子程序或程序段;与硬件资源密切相关的软件开发,如:设备驱动程序等;受存储容量限制的应用领域,如:家用电器的计算机控制功能等;没有适当的高级语言开发环境。

相关文档
最新文档