您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 汇编语言课程设计 提取系统时间
学号:200740410131课程设计题目显示系统时间日期教学院计算机学院专业计算机科学与技术班级07级计科(1)班姓名阮丁指导教师晏伯武、马学军、姚莉、杨斐2010年6月27日课程设计任务书2009~2010学年第二学期学生姓名:专业班级:指导教师:马学军、晏伯武、姚莉、杨斐工作部门:计算机学院一、课程设计题目显示系统日期时间的程序开发二、课程设计内容要求完成一个显示系统当前日期和时间的程序,即通过按下键盘上某个按键就可以显示系统的日期和时间或者终止程序。(比如:在出现的提示信息后输入小写字母“d”,显示系统当前日期;输入小写字母“t”,显示系统当前时间;输入小写字母“q”,结束程序。)此程序涉及到对DOS和BIOS的常用功能的调用,要求学生掌握使用汇编语言对I/O中断的使用。三、进度安排1.2010年6月21日,指导教师讲课,设计小组根据题目准备资料,进行总体方案设计和任务分工;2.2010年6月22日,每人完成自己承担的程序模块并通过独立编译;3.2010年6月23日,将各模块集成为一个完整的系统,录入数据并调试;4.2010年6月24日,验收、撰写报告;5.2010年6月25日,答辩及总结。四、基本要求1.设计内容由各小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。2.学生查阅相关资料,自学具体课题中涉及到的新知识,能够按照老师的要求正确绘制程序流程图。3.学生在老师的指导下,能够写出相应的源程序代码,采用结构化、模块化程序设计方法,功能要完善,界面要美观。4.学生能够最终将系统所要实现的功能演示出来。5.最后经验收合格后,按要求写出课程设计报告。教研室主任签名:年月日用汇编语言实现显示系统时间的程序目录一.概述.......................................................................................................................4二.总体方案设计.......................................................................................................5三.详细设计...............................................................................................................8五.总结.....................................................................................................................18六.谢启.....................................................................................................................18七.附录.....................................................................................................................19八.参考文献.............................................................................................................19一.概述1.课程设计的目的对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。培养学生综合运用所学知识独立完成汇编程序课题的能力。使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。2.设计要求用户在出现的提示信息中输入大写字母“D”,马上显示系统当前日期;输入大写字母“T”,马上显示系统当前时间;输入大写字母“Q”,则退出程序。此程序涉及到宏和I/O中断的调用,要求学生掌握对宏的定义和使用,使用汇编语言对I/O中断的使用。小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。学生查阅相关资料,自学具体课题中涉及到的新知识,能够按照老师的要求对待设计的系统的程序流程图进行正确地绘制。学生在老师的指导下,能够写出相应的源程序代码,采用结构化、模块化程序设计方法,功能要完善,界面要美观。所设计的系统原则上要能够运行无误,结果准确。在条件允许的情况下,学生能够最终将系统所要实现的功能演示出来。最后经验收合格后,按要求写出课程设计报告,并于设计结束后1周内提交。总体设计应配合软件总体模块结构图来说明软件应具有的功能。详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。二.总体方案设计1.主程序设计思想此动画程序要求结构化的显示系统时间和日期。程序要求能多次执行以上两种操作并有退出选项。则我们可以设计三个选项以供用户选择:D-DATE、T-TIME和Q-退出程序。三个选项分别可以用三个过程实现其功能。用户在出现的提示信息中输入小写字母“D”,马上显示系统当前日期;输入小写字母“T”,马上显示系统当前时间;输入小写字母“Q”,则退出程序。2.程序设计思想在DOS环境下完成,先利用BIOS功能调用中显示器驱动程序的00H类型调用,设置显示器的显示模式为80*25彩色。在屏幕中央显示提示信息(提示用户输入“D”或“T”或“Q”)。然后对用户输入的字母进行判断,利用分支程序分别调用不同的子程序。两个子程序的功能分别是显示当前日期(用2AH的DOS功能调用来取日期),显示当前时间(用2CH的DOS功能调用来取时间)。必须用到的DOS功能调用:取当前系统日期:功能号为2AH,返回值送入CX,DX寄存器中。取当前系统时间:功能号为2CH,返回值送入CX,DX寄存器中。例如:2009年5月31日运行的程序中,(1)使用2AH的DOS功能调用后,得到CX=07D9H,DX=051FH其中,CX中的数据为2009D,即年份。DX中的数据中可分析得:DH=05H=05D,即月份。DL=1FH=31D,即日期号。最后应将数据转换为其字符对应的ASCII码,即32H,30H,30H,39H,2DH,30H,35H,2DH,33H,31H再显示在屏幕上。即显示出:2009-5-313.我完成部分模块说明1)其中主要对主程序和宏清屏命令进行了设计和编码即红色代码部分,下面将分别对它们进行简要说明。主程序:CODESEGMENT代码段ASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARBEGIN:MOVAH,0;设置40*25图形显示MOVAL,3INT10HCLEAR_SCREEN00H,00H,19H,50HMOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AX;*****************************显示宏定义*************************SHOWMACRObLEADX,bMOVAH,9INT21HENDMSHOWWELCOME;显示数据段的内容SHOWINF01SHOWINF02SHOWINF03SHOWINF04SHOWINF05SHOWINF06INPUT:MOVAH,01;键盘输入并回写INT21HCMPAL,44H;与D比较JNEL1;不相等转L1CALLDATEDISPLAY;相等调用DATADISPLAYJMPEXIT1L1:CMPAL,54H;与T比较JNEL2;不相等转L2CALLTIMEDISPLAY;相等调用TIMEDISPLAYJMPEXIT1L2:CMPAL,51H;与Q比较JEEXIT;相等转EXITSHOWINPUTER;显示输入错误SHOWINF05;显示输入提示JMPINPUTEXIT1:SHOWINF06;显示输入提示JMPINPUT;EXIT:MOVAH,4CH;结束INT21HMAINENDP主程序主要实现与用户的交互,首先程序会提示用户想要进行什么操作。是显示DATE,TIME还是退出。这里对应的给用户提供的选项是“D”、“T”和“Q”。当用户输入他们的选项之后,主程序要判断用户的输入调用相应的功能模块来满足用户的要求。我们假设用户输入字符为X,那么首先我们将X与“D”比较。如果相同则程序调用DATE_DISPLAY模块为用户显示日期。若不为“D”则要继续与“T”想比较。相等则调用TIME_DISPLAY模块,不等则继续与“Q”相比较。相等则正常退出,不等则说明用户输入非法字符主程序返回到选择界面用户可以继续选择。特别说明:汇编语言的选择结构不同于C语言的选择结构,程序设计过程中要特别小心。避免将造成潜在的BUG.三.详细设计1.主程序流程图2.DATE子程序流程图NNYNY显示提示信息输入一个字符是否为’d’调用DATA调用TIME是否为’t’是否为’q’结束YN开始3.TIME子程序流程图开始获取原中断类型1CH保存原中断类型设置新的中断类型执行中断处理程序保护现场中断返回读取系统时间保存原中断类型分别将时间的BCD码转换为字符在指定位置写显存以显示时间恢复现场开始获取原中断类型1CH保存原中断类型设置新的中断类型执行中断处理程序保护现场中断返回读取系统时间保存原中断类型分别将时间的BCD码转换为字符在指定位置写显存以显示日期恢复现场4.程序清单程序代码:;************************清屏宏定义**********************CLEAR_SCREENMACROOP1,OP2,OP3,OP4;1MOVAH,06H;2MOVAL,00H;3MOVBH,79H;4MOVCH,OP1;5MOVCL,OP2;6MOVDH,OP3;7MOVDL,OP4;8INT10H;9MOVAH,02H;10MOVBH,00H;11MOVDH,00H;12MOVDL,00H;13INT10H;14ENDM;15STACKSEGMENTSTACK;16定义堆栈段DB200DUP(0);17STACKENDS;18DATASEGMENT;19定义数据段WELCOMEDB'WELCOMEYOUTOCOMEHERE!$';20提示界面INF01DB0DH,0AH,'THISISADISPLAYPROGAME!$';21INF02DB0DH,0AH,'PLEASEINPUTDTORQTOSHOWDATATIMEOREXIT!$'INF03DB0DH,0AH,'D:DISPLAYSYSTEMDATE;$';22INF04DB0DH,0AH,'T:DISPLAYSYSTEMTIME;$';23INF05DB0DH,0AH,'Q:QUIT.$';24INF06DB0DH,0AH,'PLEASEINPUTTHECHAR:$';25INPUTERDB0DH,0AH,'INPUTERROR!$';26DATEDISDB'00-00-0
本文标题:汇编语言课程设计 提取系统时间
链接地址:https://www.777doc.com/doc-3392475 .html