版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.课程设计报告课程名称汇编语言程序设计课题名称中断驻留程序专业计算机科学与技术班级计算机学号201018姓名指导教师唐北平2013年1月13日**工程学院课程设计任务书课程名称汇编语言程序设计课题中断驻留程序专业班级计算机1学生**学号208指导教师唐北平审批任务书下达日期2013年1月5日任务完成日期2013年1月13日一、设计内容与设计要求1.设计内容:通过本周的课程设计,学生能够稳固所学的根底知识,并能够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。(1)、编制一计算比赛成绩的程序,要求完成以下功能:a、9名评委,每个评委给分范围为0~100〔整数〕;b、9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分〔准确到小数点二位〕;c、将得分在光标位置处显示出来。(2)、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30字的grade数组中,各数据的格式为:**,成绩1,成绩2,…,成绩5然后根据grade中的学生成绩,把学生名次填入rank数据组中,并显示出来,格式为:**,名次(3)、利用INT1CH〔大约每秒中断18.2次〕编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为时:分:秒:1/100秒(4)、输入一个菱形的两条对角线长,在屏幕上用‘*’号画出一个彩色的菱形。(5)、设置图形方式并显示彩条,要求:选择背风光为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条2.设计要求:掌握构造化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经历。〔1〕、设计正确,方案合理。〔2〕、界面友好,使用方便。〔3〕、程序精炼,构造清晰。〔4〕、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。〔5〕、上机演示。〔6〕、按**顺序选课题号,并在规定的时间内单独完成相关课题的汇编源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;〔7〕、按本任务书的要求,按附录的要求编写"课程设计报告"〔Word文档格式〕。并用A4的复印纸打印并装订;二、进度安排第19周:星期1星期2星期3星期4附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件〔A4大小的图纸及程序清单〕。正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分〔要求画出模块图〕;三、主要功能的实现〔至少要有一个主要模块的流程图〕;四、程序调试;五、总结;六、附件〔所有程序的原代码,要求对程序写出必要的注释〕。正文总字数要求在5000字以上〔不含程序原代码〕。目录一.课题的主要功能…………1二.课题的功能模块划分……1三.主要功能的实现…………2四.程序调试…………………4五.总结……………………5六.附件…………………7-.z.一.课题的主要功能本课题主要是要完成一个中断驻留程序,要求在屏幕的右上角上显示当前系统时间,时间格式为时:分:秒。完成该课题的系统时间的功能,需要不断的中断以同步显示系统时间,这里我们需要利用INT1CH,平均每秒中断18.2次,以这样的频率同步显示系统时间足以满足人们的视觉效果。完成系统时间同步的前提,还需要读取系统时间和显示系统时间。二.课题的功能模块划分该课题的的功能模块,就是在定义好数据之后,完成读取系统时间和显示系统时间两大模块。包括获取原中断类型,保存原中断类型,设置新的中断类型,执行中断处理程序,应用堆栈保护现场,读取系统时间,然后分别将时间的BCD码转换为字符,在制定内存位置写入时间并显示时间,最后恢复现场,中断返回。具体功能模块图如下:显示系统时间主程序调用现场保护及恢复模块子程序模块显示系统时间主程序调用现场保护及恢复模块子程序模块读取系统时间模块中断模块显示系统时间模块该课题,采用调用子程序的思想来完成,主体功能都通过子程序模块完成,中断模块,读取系统时间模块,显示系统模块,现场保护模块及现场恢复模块。通过调用子程序的方法,使本程序更加具有条理性,其中现场保护是为了使存放器里有用的数据保存起来,让存放器进展其他运算,现场恢复是使之前保护起来的有用数据恢复,读取系统时间并使屏幕显示的时间与系统时间同步变化,这就不得不使用中断模块,运用INT1CH,可以平均每秒中断18.2次,足以满足视觉上的同步。主要功能的实现这个程序主要是要实现获取系统时间并显示时间。定好好数据之后,在DOS环境下,用2C号取系统时间的功能,将时赋值给CH,将分赋值给CL,将秒赋值给DH,将1/100赋值给DL,具体实现如下:MOVAH,2CH
INT21H
MOVHOUR,CH
MOVMINUTE,CL
MOVSECOND,DH在DOS环境下,使用25号功能键设置中断向量,DS:D*=中断向量,AL=中断类型号,接下来完成驻留内存。MOVA*,251CH
INT21H
MOVAH,1
INT21H
MOVA*,3100H设置显示时间在屏幕上的位置,MOVD*,(PRG_LEN+15)/16+16INT21H然后进展现场保护,接下来便用一个子函数INTIC来具体实现系统时间显示,将从系统中读取的时,分,秒分别送入内存T到T7,然后块装入指令把SI指向的存储单元读入累加器,其具体实现如下:C1:MOVAL,HOUR
CBW
MOVDL,0AH
DIVDL
ORA*,3030H
MOVWORDPTR[T],A*;将小时送入到[T]
MOVAL,MINUTE
CBW
DIVDL
ORA*,3030H
MOVWORDPTR[T+3],A*;将分钟送入到[T+3]和[T+4]
MOVAL,SECOND
CBW
DIVDL
ORA*,3030H
MOVWORDPTR[T+6],A*;将秒钟送入到[T+6]和[T+7]
MOVC*,8
MOVA*,0B800H
MOVES,A*
LEASI,[T]
MOVDI,144C3:LODSB;块装入指令把SI指向的存储单元读入累加器
STOSW;从A*读取的字送入到ES:DI
LOOPC3
CEND:IRET
INT1CENDP以上是该课题的主要功能实现,该课题的总流程图如下:程序调试1:程序调试图2:程序运行图总结这次课程设计时间虽然只有三天,学到了不少,但更多却不是知识上的收获,更多的是我们对程序设计的整体有了一个全新的认识,和同学交流得更好了。在课程设计中我学会了团结合作精神的重要性,感谢教师悉心的指导,和热情的网友们,还有我们一同奋斗的同学们,这次们上机实验的时间刚好在今年的最冷的时候,教师每天冒着风雪这机房指导我们学习,这让我们非常的感慨,一个简单的程序应该要有一个好的算法,一开场的时候我没有一个好的算法,所以程序老是出错,在教师的悉心指导下,逐渐完善了算法,然后才一步一步的有了一个完整的程序,当然这期间还有同学的的一起努力。通过这次课程设计我知道了,计算机是通过执行指令序列来解决问题,每种计算机都有一套指令集合供用户使用,对汇编语言有了一个全新的认识,助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址,如此就增强了程序的可读性和编写难度,这样符号化的程序设计语言就是汇编语言。
六.附件CODESEGMENT
ORG100H
ASSUMECS:CODE,DS:CODE
HOURDB0
MINUTEDB0
SECONDDB0
COUNTDB18
TDB"00:00:00"START:MOVA*,CODE
MOVDS,A*
MOVAH,2CH
INT21H
MOVHOUR,CH
MOVMINUTE,CL
MOVSECOND,DH
LEAD*,INT1C
MOVA*,251CH
INT21H
MOVAH,1
INT21H
MOVA*,3100H;驻留内存
MOVD*,(PRG_LEN+15)/16+16
INT21HINT1CPROCFAR
DECCS:COUNT
JZC2
JMPCENDC2:PUSHDS
PUSHES
PUSHA*
PUSHB*
PUSHC*
PUSHD*
PUSHSI
PUSHDI
PUSHCS
POPDS
MOVCOUNT,18
INCSECOND
CMPSECOND,60
C1
MOVSECOND,0
INCMINUTE
CMPMINUTE,60
C1
MOVMINUTE,0
INCHOUR
CMPHOUR,24
C1
MOVHOUR,0C1:MOVAL,HOUR
CBW
MOVDL,0AH
DIVDL
ORA*,3030H
MOVWORDPTR[T],A*;将小时送入到[T]
MOVAL,MINUTE
CBW
DIVDL
ORA*,3030H
MOVWORDPTR[T+3],A*;将分钟送入到[T+3]和[T+4]
MOVAL,SECOND
CBW
DIVDL
ORA*,3030H
MOVWORDPTR[T+6],A*;将秒钟送入到[T+6]和[T+7]
MOVC*,8
MOVA*,0B800H
MOVES,A*
LEASI,[T]
MOVDI,144C3:LODSB;块装入指令把SI指向的存储单元读入累加器
STOSW;从A*读取的字送入到ES:DI
LOOPC3
POPDI
POPSI
POPD*
POPC*
POPB*
POPA*
POPES
POPDS
CEND:IRET
INT1CE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋出售代理人合同(2篇)
- 2024音响设备展会展览策划及组织服务合同3篇
- 2024石材加工厂安全生产与风险管理的合同范本
- 二零二五版农产品市场调研与营销策划合同4篇
- 2025年度婚纱摄影情侣写真拍摄服务合同2篇
- 2025年版智慧社区门卫及智能安防系统运营合同4篇
- 二零二五年度面粉质量检测与认证合同4篇
- 二零二五年度土地租赁抵押借款合同范本
- 2025年度土地储备开发合同范本3篇
- 2025版新能源行业农民工劳动合同示范文本3篇
- SYT 6968-2021 油气输送管道工程水平定向钻穿越设计规范-PDF解密
- 冷库制冷负荷计算表
- 肩袖损伤护理查房
- 设备运维管理安全规范标准
- 办文办会办事实务课件
- 大学宿舍人际关系
- 2023光明小升初(语文)试卷
- GB/T 14600-2009电子工业用气体氧化亚氮
- 申请使用物业专项维修资金征求业主意见表
- 房屋买卖合同简单范本 房屋买卖合同简易范本
- 无抽搐电休克治疗规范
评论
0/150
提交评论