汇编课程设计报告

发布 2022-10-01 07:16:28 阅读 5699

课程设计。

目录。一概述 1

1.1课程设计的目的 4

1.2课程设计的要求 5

1.3小结 6

二总体方案设计 7

2.1主要设计思想 7

2.2程序设计思想及流程图 7

2.3 datedisplay子程序流程图 8

2.4 timedisplay子程序流程图 9

2.5小结 10

三详细设计 11

3.1界面程序 11

3.2系统日期子程序 12

3.3我完成部分模块说明 13

3.4小结 14

四程序的调试与运行结果说明 15

4.1调试程序 15

4.2运行程序要求 15

4.3程序运行结果 15

4.4运行结果说明 17

4.5小结 17

五课程设计总结 18

参考文献 20

汇编语言(assemblylanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(memoni)代替操作码,用地址符号(symbol)或标号(label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。

于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。

汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的**。高级的汇编器如masm,tasm等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

大多数情况下linux程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在linux操作系统中也可以用完全用c语言来实现,再加上gcc这一优秀的编译器目前已经能够对最终生成的**进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。但实际情况是linux程序员有时还是需要使用汇编,或者不得不使用汇编,理由很简单:精简、高效和libc无关性。

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

汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:

1)能够直接访问与硬件相关的存储器或i/o端口;

2)能够不受编译器的限制,对生成的二进制**进行完全的控制;

3)能够对关键**进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁;

4)能够根据特定的应用对**做最佳的优化,提高运行速度;

5)能够最大限度地发挥硬件的功能。

由于汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:

1)编写的**非常难懂,不好维护;

2)很容易产生bug,难于调试;

3)只能针对特定的体系结构和处理器进行优化;

4)开发效率很低,时间长且单调。

汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言**量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。

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

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

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

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

汇编执行指令是机器指令的符号化表示,其操作码用记忆符表示,地址码直接用标号、变量名字、常数等表示。汇编执行指令经汇编程序翻译为机器指令,二者之间基本上保持一一对应的关系。汇编伪指令又称作汇编指示,用于向汇编程序提供用户自定义的符号、数据的类型、数据空间的长度,以及目标程序的格式、存放位置等提示性信息,其作用是指示汇编程序如何进行汇编。

由于汇编语言的指令与机器语言的指令大体上保持一一对应的关系,汇编算法采用的基本策略是简单的。通常采用两遍扫描源程序的算法。第一遍扫描源程序根据符号的定义和使用,收集符号的有关信息到符号表中;第二遍利用第一遍收集的符号信息,将源程序中的符号化指令逐条翻译为相应的机器指令。

具体的翻译工作可归纳为如下几项:用机器操作码代替符号操作;用数值地址代替符号地址;将常数翻译为机器的内部表示;分配指令和数据所需的存储单元。除了上述的翻译工作外,汇编程序还要考虑:

处理伪指令,收集程序中提供的汇编指示信息,并执行相应的功能。为用户提供信息和源程序清单。汇编的善后处理工作,随目标语言的类型不同而有所不同。

有的直接启动执行,有的先进行连接装配。如果具有条件汇编、宏汇编或高级汇编功能时,也应进行相应的翻译处理。

汇编程序的雏型是在电子离散时序自动计算机 edsac上研制成功的。这种系统的特征是用户程序中的指令由单字母指令码、十进制地址和终结字母组成。第一个汇编程序是符号优化汇编程序(soap)系统,它是50年代中期为ibm650计算机研制的。

这种计算机用磁鼓作存储器,每条指令指出后继指令在磁鼓中的位置。当初研制soap系统的动机不是引入汇编语言的符号化特色,而是为了集中解决指令在磁鼓中合理分布的问题,以提高程序的运行效率。ibm704计算机的符号汇编程序(sap)是汇编程序发展中的一个重要里程碑。

此后的汇编程序大都以这一系统为模型,其主要特征至今未发生本质的变化。随着计算机软件的高速发展和广泛应用,汇编程序又吸收了宏加工程序、高级语言翻译程序等系统的一些优点,相继研制出宏汇编程序、高级汇编程序。

工作过程:输入汇编语言源程序。检查语法的正确性,如果正确,则将源程序翻译成等价的二进制或浮动二进制的机器语言程序,并根据用户的需要输出源程序和目标程序的对照清单;如果语法有错,则输出错误信息,指明错误的部位、类型和编号。

最后,对已汇编出的目标程序进行善后处理。

汇编语言作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿linux内核来讲,虽然绝大部分**是用c语言编写的,但仍然不可避免地在某些关键地方使用了汇编**,其中主要是在linux的启动部分。由于这部分**与硬件的关系非常密切,即使是c语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。

图 1-1 linux 内核。

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

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

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

使我们了解自己掌握知识的深度,运用理论去处理问题的能力,实验能力,课程设计能力,书面及口头表达能力。

汇编语言程序设计课程设计是一次大型实验,也是对该课程所学理论知识的深化和提高,因此,要能综合运用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验基本技能方面有一次全面的训练。

通过此次课程设计,使我们具有运用所学知识独立完成汇编程序课题的能力,同时能够较全面地巩固和应用课堂中所学的基本理论和程序方法,能够较熟练地完成汇编语言程序的设计和调试。

除了运用专业的知识完成任务,更重要的是使我们意识到对工作要认真负责,一丝不苟,对同学要团结友爱,协作攻关,使我们能够从资料文献,科学实验中获得知识,具备从别人经验中找到解决问题的新途径的悟性,使我们初步具胡工程意识和创新能力。学习勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

汇编课程设计报告

汇编语言与接 术课程设计报告。题目计时器。系部计算机学院。专业计算机科学与技术年级 10级 学生姓名钟霖。学号 100510119 目录。1 设计目的 1 2 总体设计 5 3 详细设计 6 3.1 程序具体功能 6 3.2 函数功能 6 3.3 调试分析 7 4 源程序和运行结果 8 4.1 源程...

F汇编课程设计报告

专业 网络工程。班级学号102055211 姓名 赫前进。指导老师 郭芸俊。提交日期 2012 12 30 一 实验目的。1 培养学生理论联系实际的设计思想,提高学生综合运用汇编语言课程的理论知分析问题 解决问题的能力。2 通过查找 运用设计资料,完成工程设计所必备的基本训练。3 使同学们更深入的了...

中南大学汇编课程设计报告

中南大学。微机原理课程设计报告。信号发生器功能程序设计。第一章设计题目 要求及目的 3 1.设计题目要求3 2.设计目的3 第二章总体设计方案3 1.设计思想3 2.设计方案4 3.总体设计流程图5 第三章硬件设计5 1.硬件环境要求5 2.所用芯片及其功能说明6 3.硬件接线图9 第四章程序设计1...