中断应用程序设计汇编_第1页
中断应用程序设计汇编_第2页
中断应用程序设计汇编_第3页
中断应用程序设计汇编_第4页
中断应用程序设计汇编_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.课 程 设 计 报 告课程名称 汇编语言程序设计 课题名称 中断驻留程序 专 业 计算机科学与技术 班 级 计算机 学 号 201018 姓 名 指导教师 唐 北 平 2013年 1 月 13 日湖南工程学院课 程 设 计 任 务 书 课程名称 汇编语言程序设计 课 题 中断驻留程序 专业班级 计算机1 学生姓名 学 号 208 指导老师 唐北平 审 批 任务书下达日期 2013 年 1 月5 日任务完成日期 2013年 1 月 13日一、设计内容与设计要求 1设计内容:通过本周的课程设计,学生能够巩固所学的基础知识,并能够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程

2、,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。(1)、编制一计算比赛成绩的程序,要求完成以下功能: a、9名评委,每个评委给分范围为0100(整数); b、9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分(精确到小数点二位); c、将得分在光标位置处显示出来。(2)、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30字的grade数组中,各数据的格式为:学号,成绩1,成绩2,成绩5然后根据grade中的学生成绩,把学生名次填入rank数据组中,并显示出来,格式为:学号,名次(3)、利用INT 1CH(大约每秒中断18.2次)编写一个中

3、断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为时:分:秒:1/100秒(4)、输入一个菱形的两条对角线长,在屏幕上用*号画出一个彩色的菱形。(5)、设置图形方式并显示彩条,要求: 选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条2设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。(1)、设计正确,方案合理。(2)、界面友好,使用方便。(3)、程序精炼,结构清晰。(4)、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。(

4、5)、上机演示。(6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中; (7)、按本任务书的要求,按附录的要求编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订; 二、进度安排第 19 周: 星期1 星期2 星期3 星期4 附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要

5、模块的流程图);四、程序调试;五、总结;六、(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。目 录一.课题的主要功能 1二.课题的功能模块划分 1三.主要功能的实现 2四.程序调试 4五.总结 5六 7. v.一课题的主要功能本课题主要是要完成一个中断驻留程序,要求在屏幕的右上角上显示当前系统时间,时间格式为时:分:秒。完成该课题的系统时间的功能,需要不断的中断以同步显示系统时间,这里我们需要利用INT 1CH,平均每秒中断18.2次,以这样的频率同步显示系统时间足以满足人们的视觉效果。完成系统时间同步的前提,还需要读取系统时间和显示系统时间。

6、二课题的功能模块划分该课题的的功能模块,就是在定义好数据之后,完成读取系统时间和显示系统时间两大模块。包括获取原中断类型,保存原中断类型,设置新的中断类型,执行中断处理程序,应用堆栈保护现场,读取系统时间,然后分别将时间的BCD码转换为字符,在制定内存位置写入时间并显示时间,最后恢复现场,中断返回。具体功能模块图如下:显示系统时间主程序调用现场保护及恢复模块子程序模块读取系统时间模块中断模块显示系统时间模块该课题,采用调用子程序的思想来完成,主体功能都通过子程序模块完成,中断模块,读取系统时间模块,显示系统模块,现场保护模块及现场恢复模块。通过调用子程序的方法,使本程序更加具有条理性,其中现场

7、保护是为了使寄存器里有用的数据保存起来,让寄存器进行其他运算,现场恢复是使之前保护起来的有用数据恢复,读取系统时间并使屏幕显示的时间与系统时间同步变化,这就不得不使用中断模块,运用INT 1CH,可以平均每秒中断18.2次,足以满足视觉上的同步。三 主要功能的实现这个程序主要是要实现获取系统时间并显示时间。定好好数据之后,在DOS环境下,用2C号取系统时间的功能,将时赋值给CH,将分赋值给CL,将秒赋值给DH,将1/100赋值给DL,具体实现如下:MOV AH,2CH INT 21H MOV HOUR, CH MOV MINUTE,CL MOV SECOND,DH在DOS环境下,使用25号功能

8、键设置中断向量,DS:DX=中断向量,AL=中断类型号,接下来完成驻留内存。MOV AX,251CH INT 21H MOV AH,1 INT 21H MOV AX,3100H设置显示时间在屏幕上的位置,MOV DX,(PRG_LEN+15)/16+16 INT 21H 然后进行现场保护,接下来便用一个子函数INTIC来具体实现系统时间显示,将从系统中读取的时,分,秒分别送入内存T到T7,然后块装入指令 把SI指向的存储单元读入累加器,其具体实现如下:C1: MOV AL,HOUR CBW MOV DL,0AH DIV DL OR AX,3030H MOV WORD PTRT,AX ;将小时送

9、入到T MOV AL,MINUTE CBW DIV DL OR AX,3030H MOV WORD PTRT+3,AX ;将分钟送入到T+3和T+4 MOV AL,SECOND CBW DIV DL OR AX,3030H MOV WORD PTRT+6,AX ;将秒钟送入到T+6和T+7 MOV CX,8 MOV AX,0B800H MOV ES,AX LEA SI,T MOV DI,144 C3: LODSB ;块装入指令 把SI指向的存储单元读入累加器 STOSW ;从 AX 读取的字 送入到ES:DI LOOP C3 CEND: IRET INT1C ENDP 以上是该课题的主要功能实

10、现,该课题的总流程图如下:四 程序调试1:程序调试图2:程序运行图五 总结 这次课程设计时间虽然只有三天,学到了不少,但更多却不是知识上的收获,更多的是我们对程序设计的整体有了一个全新的认识,和同学交流得更好了。在课程设计中我学会了团结合作精神的重要性,感谢老师悉心的指导,和热情的网友们,还有我们一同奋斗的同学们,这次们上机实验的时间刚好在今年的最冷的时候,老师每天冒着风雪这机房指导我们学习,这让我们非常的感慨,一个简单的程序应该要有一个好的算法,一开始的时候我没有一个好的算法,所以程序老是出错,在教师的悉心指导下,逐渐完善了算法,然后才一步一步的有了一个完整的程序,当然这期间还有同学的的一起

11、努力。通过这次课程设计我知道了,计算机是通过执行指令序列来解决问题,每种计算机都有一套指令集合供用户使用,对汇编语言有了一个全新的认识,助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址,如此就增强了程序的可读性和编写难度,这样符号化的程序设计语言就是汇编语言。六CODE SEGMENT ORG 100H ASSUME CS:CODE,DS:CODE HOUR DB 0 MINUTE DB 0 SECOND DB 0 COUNT DB 18 T DB "00:00:00" START:MOV AX,CODE MOV DS,AX MOV AH,2CH INT

12、21H MOV HOUR, CH MOV MINUTE,CL MOV SECOND,DH LEA DX,INT1C MOV AX,251CH INT 21H MOV AH,1 INT 21H MOV AX,3100H ;驻留内存 MOV DX,(PRG_LEN+15)/16+16 INT 21H INT1C PROC FAR DEC CS:COUNT JZ C2 JMP CEND C2: PUSH DS PUSH ES PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH CS POP DS MOV COUNT,18 INC SECOND C

13、MP SECOND,60 JB C1 MOV SECOND,0 INC MINUTE CMP MINUTE,60 JB C1 MOV MINUTE,0 INC HOUR CMP HOUR,24 JB C1 MOV HOUR,0 C1: MOV AL,HOUR CBW MOV DL,0AH DIV DL OR AX,3030H MOV WORD PTRT,AX ;将小时送入到T MOV AL,MINUTE CBW DIV DL OR AX,3030H MOV WORD PTRT+3,AX ;将分钟送入到T+3和T+4 MOV AL,SECOND CBW DIV DL OR AX,3030H MOV WORD PTRT+6,AX ;将秒钟送入到T+6和T+7 MOV CX,8 MOV AX,0B800H MOV ES,AX LEA SI,T MOV DI,144 C3: LODSB ;块装入指令 把SI指向的存储单元读入累加器 STOSW ;从 AX 读取的字 送入到ES:DI LOOP C3 POP DI POP SI POP DX POP CX POP BX POP AX PO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论