版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 汇编语言课程设计 题目:中断技术程序设计 姓名:、大川 学号:、 班级:12计算机应用技术(1)班 指导老师:、 日期: 2013年12月13日 目 录 第 9 页 12计算机应用技术(1)班 大川一、汇编语言 1、汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语
2、言编译器转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。因此,有时候人们也把汇编语言称为组合语言。简介汇编语言是直接面向处理器(Processor)的程序设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。每一种处理器都有自己可以识别的一整套指令,称为指令集。处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态如图所示,在电路中,每条机器指令都表现为一组电信号,通过一排导线进入处1 理器。这些电信号有的呈高电平,有的呈低电平,哪些为高,哪
3、些为低,取决于不同的机器指令。如果把高电平记为“1”,低电平记为“0”,那么,不同的机器指令将表现为不同的二进制序列,由于它们的无规律性,这就使得机器指令难以理解、书写和记忆人类最容易接受自己每天都使用的自然语言。为了使机器指令的书写和理解变得容易,需要借鉴自然语言的优点,为此就引入了汇编语言。汇编语言使用符号来代表不同的机器指令,而这些符号非常接近于自然语言的要素。基本上,汇编语言里的每一条指令,都对应着处理器的一条机器指令。汇编语言包括两个部分:语法部分和编译器。语法部分提供与机器指令相对应的助记符,方便指令的书写和阅读。当然,汇编语言的符号可以被人类接受,但不能被处理器识别,为此,还要由
4、汇编语言编译器将这些助记符转换成机器指令。根据应用领域的不同,处理器的种类繁多,比如用于工业控制和嵌入式计算的Z80、MC68000和MCS-51、广泛应用于个人计算机的INTELx86系列,以及基于ARM体系结构的处理器,包括苹果公司在内的大企业都是ARM的客户。事实上,今天的ARM是最受欢迎的32位嵌入式处理器,而且,今天的ARM处理器比INTEL奔腾系列卖得还多,基本上是3:1的比例。不同的处理器有不同的指令集。正是因为这个原因,每一种处理器都会有自己专属的汇编语言语法规则和编译器。即使是同一种类型的处理器,也可能拥有不同的汇编语言编译器。一个明显的例子是INTEL x86系列的处理器,
5、围绕它就开发出好多种编译器来,如MASM、NASM、FASM、TASM和AT&T等。而且,这每一种编译器,都使用不同的语法。2、优缺点优点 1、因为用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源。3、目标代码简短,占用内存少,执行速度快,是高效的程序设计语言,经常与高级语言配合使用,以改善程序的执行速度和效率,弥补高级语言在硬件控制方面的不足,应用十分广泛。4、缺点1、汇编语言是面向机器的,处于整个计算机语言层次结
6、构的底层,故被视为一种低级语言,通常是为特定的计算机或系列计算机专门设计的。因此,不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性; 5、难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试; 6、使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。3应用历史上,汇编语言曾经是非常流行的程序设计语言之一。随着软件规模的增长,以及随之而来的对软件开发进度和效率的要求,高级语言逐渐取代了汇编语言。但即便如此,高级语言也不可能完全替
7、代汇编语言的作用。就拿Linux内核来讲,虽然绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码。由于这部分代码与硬件的关系非常密切,即使是C语言也会显得力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。二、汇编语言的特点 一方面,汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。汇编语言程序归纳起来大概有以下几个主要特性。 1、与机器相关性汇编语言指令是机器指令的一种符号表示,而不同类型的CPU有不同的机器指令系统,也就有不同的汇编语言,
8、所以,汇编语言程序与机器有着密切的关系。由于汇编语言程序与机器的相关性,所以,除了同系列、不同型号CPU之间的汇编语言程序有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU之间的汇编语言程序是无法移植的,也就是说,汇编语言程序的通用性和可移植性要比高级语言程序低。 2、执行的高效率正因为汇编语言有“与机器相关性”的特性,程序员用汇编语言编写程序时,可充分发挥自己的聪明才智,对机器内部的各种资源进行合理的安排,让它们始终处于最佳的使用状态,这样做的最终效果就是:程序的执行代码短,执行速度快。现在,高级语言的编译程序在进行寄存器分配和目标代码生成时,也都有一定程度的优化(在后续课程
9、编译原理的有关章节会有详细介绍),但由于所使用的“优化策略”要适应各种不同的情况,所以,这些优化策略只能在宏观上,不可能在微观上、细节上进行优化。而用汇编语言编写程序几乎是程序员直接在写执行代码,程序员可以在程序的每个具体细节上进行优化,这也是汇编语言程序执行高效率的原因之一。 3、编写程序的复杂性汇编语言是一种面向机器的语言,其汇编指令与机器指令基本上一一对应,所以,汇编指令也同机器指令一样具有功能单一、具体的特点。要想完成某件工作(如计算:A+B+C等),就必须安排CPU的每步工作(如:先计算A+B,再把C加到前者的结果上)。另外,在编写汇编语言程序时,还要考虑机器资源的限制、汇编指令的细
10、节和限制等等。由于汇编语言程序要安排运算的每一个细节,这就使得编写汇编语言程序比较繁琐、复杂。一个简单的计算公式或计算方法,也要用一系列汇编指令一步一步来实现。 4、调试的复杂性在通常情况下,调试汇编语言程序要比调试高级语言程序困难,其主要原因有四: 汇编语言指令涉及到机器资源的细节,在调试过程中,要清楚每个资源的变化情况; 程序员在编写汇编语言程序时,为了提高资源的利用率,可以使用各种实现技巧,而这些技巧完全有可能破坏程序的可读性。三、课程设计的目的 培养学生熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。为将来从事专业工作打下基础,培良好的职业道
11、德和严谨的工作作风。 综合运用汇编语言的理论知识进行中断处理程序设计,通过理论推导得出相应结论,通过修改中断向量表,实现自己的中断,在DOS环境下,能够每隔一段时间中断一次,并记录次数。即在DOS环境上显示次数。所使用的软件主要有记事本、宏汇编6.0等。 四、课程设计的要求 要求:编写一个中断处理程序,要求在主程序运行过程中,每隔10秒响铃一次,并记录响铃次数。同时在屏幕上显示信息次数,按键后恢复原状。 (1) 学会DOS的使用,掌握程序设计方法。 (2)掌握汇编语言的基本概念、基本理论和基本方法。 注意事项: (3)必须由中断来实现
12、本设计。 (4)每次响铃时间间隔必须相等。(5)具备初步的独立分析和解决问题的能力;(6)初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能;(7)提高综合运用所学的理论知识和方法的能力;(8)训练用系统的观点和软件开发一般规范进行软件开发,培养科学的工作方法和作风;(9)设计的题目要求达到一定工作量,并具有一定的深度和难度;五、课程设计报告内容 5.1设计思想本设计通过修改中断向量表,将自己的中断程序写入中断向量表。然后通过调用该中断功能号来实现每隔10秒系统每调用一次该中断并响一次铃,而且在屏幕上显示中断次数,按回车键结束显示。5、2设计方案 在本次课程设计的中
13、断处理程序中,我们运用了寄存器和计数器、中断指令INT1CH,在时钟每中断一次并计一次数时,先将各个工作寄存器的内容入栈,然后次数计数器就开始计数并转换成ASCII显示。其次,扬声器发音、次数计数器在延时、关闭中断,最后中断返回。5、3设计步骤 a.分析问题 对于接受的任务要进行认真的分析,研究所给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法,完成实际问题。 b.设计算法 即设计出解题的方法和具体步骤。 c.编写程序根据得到的算法,用一种高级语言编写出源程序。并通过测试。 d .对源程序进行编辑、编译和连接 e .运行程序,分析结果运行可执行程序,得到运行结果。能得到运行
14、结果并不意味着程序正确,要对结果进行分析,看它是否合理。不合理要对程序进行调试,即通过上机发现和排除程序中的故障的过程。 f.编写程序文档许多程序是提供给别人使用的,如同正式的产品应当提供产品说明书一样,正式提供给用户使用的程序,必须向用户提供程序说明书。内容应包括:程序名称、程序功能、运行环境、程序的装入和启动、需要输入的数据,以及使用注意事项等。5.4流程图: 设置中断向量 清屏 开始 返回中断 允许中断 延 时 关中断 恢复中断向量 延时各工作寄存器内容入栈 扬声器发音次数计数器加1转换成ASCII显示5.5程序源代码:=DATAS SEGMENT org 2000hcount dw 1
15、mess db 0dh,0ah,'$'buf db 1 dup(1)asc db ?,?,'$'DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX mov al,1ch mov ah,35h int 21h push es push bx push ds mov dx,offset ring mov ax,seg ring mov ds,ax mov al,3ch mov ah,14h int 21h pop ds in al,21h and al,ofeh
16、out 21h,al sti mov di,1000delay: mov si,offfhdelay1: dec si jnz delay pop ds pop ax mov al,1ch mov ah,25h int 21h jmp startring proc push ds push ax push cx push al mov ds,datas mov ds,ax sti dec count jnz exit mov dx,offset mess mov ah,9 int 21h mov al,buf xor al,ah mov dl,10 div dl or al,30h mov a
17、sc,al or ah,30h lea dx,asc mov ah,9 int 21h mov dx,300h in al,61h and al,ofchsound: xor al,02h out 61h,al mov cx,oaffhwait1: loop wait1 dec al jnz sound mov count,181 inc bufexit:cli pop dx pop cx pop ds pop ax iretring endpCODES END END START= 5.6运行结果:6、 总结: 通过本次课程设计让我充分了解了汇编在实际软件开发中的作用和地位。在这次课程设计过
18、程中我们把课堂上的知识充分运用了还是不能完成实际软件开发。这说明程序开发是不能够停留在书本上的,想要把程序作好,必须要不断通过各种途径掌握更多更好的知识,并且最重要的是要将获得的知识运用到实际编程中,要学以致用。本次课程设计是自由分组、自由选题。 两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去做一件事情,又如何完成一件事情的能力。在设计过程中,与同学分工设计、相互探讨、相互学习。使我学会了合作,学会了宽容,学会了理解。 课程设计是我们专业课程知识综合应用的实践训练,也是我们迈向社会,从事职业前一个必不少的过程。通过这次课程设计,我深深体会到“千里之行始于足下”这句千古名言的真正含义。今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会中奋力前进打下坚实的基础在这次课程设计过程中,体现出自己单独设计学生管理系统,综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。虽然说在设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国紧急按钮数据监测研究报告
- 2024至2030年中国队鼓行业投资前景及策略咨询研究报告
- 2024至2030年中国灵猴呈祥水晶摆件数据监测研究报告
- 2024至2030年百合提取液项目投资价值分析报告
- 2024至2030年溶液搅拌箱项目投资价值分析报告
- 2024至2030年数控刀杆项目投资价值分析报告
- 2024至2030年中国双面革面传动带行业投资前景及策略咨询研究报告
- 2024至2030年促生长激素释放肽项目投资价值分析报告
- 2024年透光壁炉项目可行性研究报告
- 2024年中国齿科针市场调查研究报告
- 八年级物理(上)期中考试分析与教学反思
- 国家开放大学《财政与金融(农)》形考任务1-4参考答案
- 2023银行网点年度工作总结
- 工厂反骚扰虐待强迫歧视政策
- 计算机教室(微机室)学生上机使用记录
- Photoshop(PS)教学课件:第6章调色
- FAI首件检验报告
- 生活满意度量表(SWLS)
- 幂函数评课稿
- 能你也能:IPD产品管理实践
- 细胞生物学主题知识讲座
评论
0/150
提交评论