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

上传人:pu****.1 文档编号:561972453 上传时间:2023-01-23 格式:DOC 页数:8 大小:31.50KB
返回 下载 相关 举报
汇编语言程序设计课程论文_第1页
第1页 / 共8页
汇编语言程序设计课程论文_第2页
第2页 / 共8页
汇编语言程序设计课程论文_第3页
第3页 / 共8页
汇编语言程序设计课程论文_第4页
第4页 / 共8页
汇编语言程序设计课程论文_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《汇编语言程序设计课程论文》由会员分享,可在线阅读,更多相关《汇编语言程序设计课程论文(8页珍藏版)》请在金锄头文库上搜索。

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

2、言的长处在于编写高效且需要对机器硬件准确控制的程序。与我们学过的C语言相比,C语言是一种构造化的高级语言,执行效率远没有汇编语言高。很多情况下,使用C语言编写会出现ROM空间缺乏、堆栈溢出等问题,而对于汇编语言,一条指令就对应一个机器码,每一步怎么执行都很清楚明了,并且程序大小和堆栈调用情况都容易控制,调试起来也比拟方便。关键词:编汇 应用 程序 存储器 低级 CPU 汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。 是能完成一定任务的机器指令的集合。常

3、说汇编语言过时,是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是程序员必须了解的语言,在*些行业与领域,汇编是必不可少的,非它不可适用。只是,现在计算机最大的领域为IT软件,也是我们常说的 Windows编程,在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序是成倍的优秀,但是代价是需要更长的时间来优化,如果对计算机原理及编程根底不扎实,实在是得不偿失,比照现在的软件开发,已经是市场化的软件行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花上几倍甚至几十倍的时间,不如使用其它语言来完成,只要最终结果不比汇编语言编写的差

4、太多,就能抢先一步完成,这是市场经济下的必然结果。 但是,至今为止,还没有程序员敢断定汇编语言是不需要学的,一个不懂汇编语言的程序员,只是三流的程序员,这是大局部人的共识,同时,技术汇编语言(Assembly Language)是面向机器的程序设计语言精湛的汇编程序员,已经脱离软件开发,挤身于工业电子编程中,一个电子工程师,主要开发语言就是汇编,c语言使用只占极少局部,而电子开发工程师是千金难求,在一些工业公司,一个核心的电子工程师比其它任何职员待遇都高,比照起来,一般电子工程师待遇是程序员的十倍以上。这种情况是因为现在学习汇编的人虽然也不少,但是真正能学到精通的却不多,它难学,难用,适用围小

5、,虽然简单,但是过于灵活,学习过高级语言的人去学习汇编比一开场学汇编的人难得多,但是学过汇编的人学习高级语言却很容易,简从繁易,繁从简难。总之,汇编语言是程序员的必修语言。 目前国最好的汇编是“AoGo汇编小站。其站长aogo,就是一个在工业方面有所成就的工程师,有意者可多参考。其次就是罗云彬的汇编站点:这个大概是国建站时间最长的汇编站点,其编写的?Windows下汇编语言程序设计?一书。是站长十几年的经历的集合,不妨看看。熟悉指令,可以尝试破解,加强兴趣,参考看雪学院,国最好的破解组织,其中看雪与众高手打造的破解书?加密 解密完全方案?非常有名。汇编语言是一种低级的程序语言可直接控制硬件。汇

6、编语言是计算机最底层的语言,现在一般都用在硬件层,对硬件直接控制,其他的都用高级的语言编写了,因为汇编写程序容易出错,而且太过于复杂和长啦,虽然引入了其他的有类似高级语言的一些伪指令但是相比高级语言可以解决的问题都不用汇编啦。好似现在的计算机已经增加了对C+还是什么语言反正就是高级语言的支持啦,就是开集的引导程序已经不用汇编啦好似只有为苹果apple系统制作的机子有,微软不知道为什么还没,不过不是技术问题,据说有其他目的。 作为最根本的编程语言之一,汇编语言虽然应用的围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linu* 核来讲,虽然绝大局部代码是用 C

7、语言编写的,但仍然不可防止地在*些关键地方使用了汇编代码,其中主要是在 Linu* 的启动局部。由于这局部代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。 按CPU不同的话根本每一种CPU都对应一种汇编,比方Intel出的CPU可以算一个系列的,这些CPU在推出新版CPU的时候会根本保持向下兼容,就是原来低级CPU的指令在高级的CPU上也是一样的,所以说可以算作一类.另外还有单片机的汇编,单片机的指令和PC上CPU的指令是有出入的,所以另作一类按操作系统不同的话可以分为windows下汇编,DOS汇编等,虽然可能在一样的CPU

8、上运行不同的操作系统(比方windows下的dos窗口),但不同的操作系统的程序设计是不一样的,比方在DOS下你不可能去调用windows的API,在windows下也不可能去调用DOS的int 21H中断,另外*些单片机也有操作系统。大多数情况下 Linu* 程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在 Linu* 操作系统中也可以用完全用 C 语言来实现,再加上 GCC 这一优秀的编译器目前已经能够对最终生成的代码进展很好的优化,确实有足够的理由让我们可以暂时将汇编语言抛在一边了。但实现情况是 Linu* 程序员有时还是需要使用汇编,或者不得不使用汇编,理由很简单:精简、高

9、效和 libc 无关性。假设要移植 Linu* 到*一特定的嵌入式硬件环境下,首先必然面临如何减少系统大小、提高执行效率等问题,此时或许只有汇编语言能帮上忙了。汇编语言直接同计算机的底层软件甚至硬件进展交互,它具有如下一些优点: 1、能够直接与硬件相关的存储器或 I/O 端口; 2、能够不受编译器的限制,对生成的二进制代码进展完全的控制; 3、能够对关键代码进展更准确的控制,防止因线程共同或者硬件设备共享引起的死锁; 4、能够根据特定的应用对代码做最正确的优化,提高运行速度; 5、能够最大限度地发挥硬件的功能。 同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机

10、器指令码,因此不可防止地存在一些缺点: 1、编写的代码非常难懂,不好维护; 2、很容易产生 bug,难于调试; 3、只能针对特定的体系构造和处理器进展优化; 4、开发效率很低,时间长且单调。 汇编当然可以写网络程序啦,高级语言可以做的汇编可以做,高级语言不可以做的汇编也可以做。IP探测的软件一般都不用汇编,毕竟高级语言可以解决,但是汇编写出来的没有高级语言自身的一些限制,如平安性,可能对权限有限制。汇编可以应用于单片机,因为他们简单种类繁多,没有操作系统开发代价大,而且不划算故用汇编,不过其他的涉及电子的根本上都可以用汇编一方面,汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机

11、器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。汇编语言程序归纳起来大概有以下几个主要特性。1、与机器相关性 汇编语言指令是机器指令的一种符号表示,而不同类型的CPU有不同的机器指令系统,也就有不同的汇编语言,所以,汇编语言程序与机器有着密切的关系。由于汇编语言程序与机器的相关性,所以,除了同系列、不同型号CPU之间的汇编语言程序有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU之间的汇编语言程序是无法移植的,也就是说,汇编语言程序的通用性和可移植性要比高级语言程序低。2、执行的高效率 正因为汇编语言有“与机器相关性的特性,

12、程序员用汇编语言编写程序时,可充分发挥自己的聪明才智,对机器部的各种资源进展合理的安排,让它们始终处于最正确的使用状态,这样做的最终效果就是:程序的执行代码短,执行速度快。现在,高级语言的编译程序在进展存放器分配和目标代码生成时,也都有一定程度的优化(在后续课程?编译原理?的有关章节会有详细介绍),但由于所使用的“优化策略要适应各种不同的情况,所以,这些优化策略只能在宏观上,不可能在微观上、细节上进展优化。而用汇编语言编写程序几乎是程序员直接在写执行代码,程序员可以在程序的每个具体细节上进展优化,这也是汇编语言程序执行高效率的原因之一。3、编写程序的复杂性 汇编语言是一种面向机器的语言,其汇编

13、指令与机器指令根本上一一对应,所以,汇编指令也同机器指令一样具有功能单一、具体的特点。要想完成*件工作(如计算:A+B+C等),就必须安排CPU的每步工作(如:先计算A+B,再把C加到前者的结果上)。另外,在编写汇编语言程序时,还要考虑机器资源的限制、汇编指令的细节和限制等等。由于汇编语言程序要安排运算的每一个细节,这就使得编写汇编语言程序比拟繁琐、复杂。一个简单的计算公式或计算方法,也要用一系列汇编指令一步一步来实现。4、调试的复杂性 在通常情况下,调试汇编语言程序要比调试高级语言程序困难,其主要原因有四点:汇编语言指令涉及到机器资源的细节,在调试过程中,要清楚每个资源的变化情况;程序员在编

14、写汇编语言程序时,为了提高资源的利用率,可以使用各种实现技巧,而这些技巧完全有可能破坏程序的可读性。这样,在调试过程中,除了要知道每条指令的执行功能,还要清楚它在整个解题过程中的作用;高级语言程序几乎不显式地使用“转移语句,但汇编语言程序要用到大量的、各类转移指令,这些跳转指令大增加了调试程序的难度。如果在汇编语言程序中也强调不使用“转移指令,则,汇编语言程序就会变成功能单调的顺序程序,这显然是不现实的;调试工具落后,高级语言程序可以在源程序级进展符号跟踪,而汇编语言程序只能跟踪机器指令。不过,现在这方面也有所改善,CV(CodeView)、TD(Turbo Debug)等软件也可在源程序级进

15、展符号跟踪了。 综上所说,汇编语言的特点明显,其诱人的优点直接导致其严重的缺点,其“与机器相关和“执行的高效率导致其可移植性差和调试难。所以,我们在选用汇编语言时要根据实际的应用环境,尽可能防止其缺点对整个应用系统的影响。 下面简单列举几个领域以示说明,但不要把它们绝对化。 1、适用的领域 1要求执行效率高、反响快的领域,如:操作系统核,工业控制,实时系统等; 2系统性能的瓶颈,或频繁被使用子程序或程序段; 3与硬件资源密切相关的软件开发,如:设备驱动程序等; 4受存储容量限制的应用领域,如:家用电器的计算机控制功能等; 5没有适当的高级语言开发环境。 2、不宜使用的领域 1大型软件的整体开发; 2没有特殊要求的一般应用系统的开发等。总结:当前流行的汇编语言的开发工具是Masm6.0,这套开发工具对于熟练的汇编语言开发人员来说是比拟好用的,是一个集编辑,编译masm),连接(link),调试(debug)于一体的开发工具,但它并没有提供可视化分开发工具,一切代码均要程序员自己编写,不利于像我们这样的初学者学习汇编语言,并且是一个DOS下的开发工具。国各个高校开发出一些汇编语言的开发工具,如:MasmForWindows。这些汇编语言开发工具有一个共同的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号