欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    汇编语言课程设计系统时间显示.pdf

    • 资源ID:76255160       资源大小:1.11MB        全文页数:19页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汇编语言课程设计系统时间显示.pdf

    1 汇编语言课程设计题目:系统时间显示学生姓名:杨松学生学号:200810804034 院(系):计算机年级专业:08软件工程指导教师:冯伟老师二一年12 月2 攀枝花学院本科学生课程设计任务书题目系统时间显示程序1、课程设计的目的1、培养学生理论联系实际的设计思想,提高学生综合运用汇编语言课程的理论知分析问题、解决问题的能力。2、通过查找、运用设计资料,完成工程设计所必备的基本训练。3、使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)用“时:分:秒”(均为两位)的形式连续显示系统时间。利用BIOS的 INT 1AH的 2 号系统功能调用,将计算机系统的时间参数(BCD码)送入寄存器,将用BCD码表示的时、分、秒转换成ASCII 码并进行显示。3、主要参考文献1 汇编语言程序设计,吴向军等,高等教育出版社,2002 2 IBM-PC 汇编语言及程序设计(第 2 版),沈美明等,清华大学出版社,2001 3 IBM-PC 汇编语言及程序设计实验教程,沈美明等,清华大学出版社,2001 4 汇编语言程序设计,钱晓捷等,电子工业出版社,2000 5 汇编语言程序设计,张志明等,重庆大学出版社,19974、课程设计工作进度计划1、分析设计准备,周一完成2、编程调试阶段,周二至周三3、编写课程设计报告,周四4、考核,周五指导教师(签字)日期年月日教研室意见:年月日学生(签字):接受任务时间:年月日注:任务书由指导教师填写。3 目录摘要.11.概述.21.1 课程设计的目的.21.2 设计要求.22.总体方案设计.32.1 主程序设计思想.32.2 程序设计思想.32.3 我完成部分模块说明.43.详细设计.53.1 主程序流程图.53.2 DATE 子程序流程图.63.3 TIME子程序流程图.73.4 程序清单 .73.5 运行程序 .12 3.6 调试程序 .15 4总结.15 5参考文献.16 1 摘要这个程序主要是用来显示系统时间的程序。在这个程序中,主程序首先设置显示方式,取系统时间后将时间保存,继续设置显示方式,利用BIOS的 INT 1AH 的 2 号系统功能调用,将计算机系统的时间参数(BCD码)送入寄存器,将用 BCD 码表示的时、分、秒转换成ASCII码并进行显示。读字符串到al 中进行判断是否为结束,然后进行显示时间。后又重新取系统时间。然后进行一系列的判断是否有进位。有则进行进位操作,否则重新取系统时间。关键字:系统时间,寄存器,ASCLL码,流程图2 1.概述1.1 课程设计的目的对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。培养学生综合运用所学知识独立完成汇编程序课题的能力。使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。1.2 设计要求用户在出现的提示信息中输入大写字母“D”,马上显示系统当前日期;输入大写字母“T”,马上显示系统当前时间;输入大写字母“Q”,则退出程序。此程序涉及到宏和I/O 中断的调用,要求学生掌握对宏的定义和使用,使用汇编语言对I/O 中断的使用。小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。学生查阅相关资料,自学具体课题中涉及到的新知识,能够按照老师的要求对待设计的系统的程序流程图进行正确地绘制。学生在老师的指导下,能够写出相应的源程序代码,采用结构化、模块化程序设计方法,功能要完善,界面要美观。所设计的系统原则上要能够运行无误,结果准确。在条件允许的情况下,学生能够最终将系统所要实现的功能演示出来。最后经验收合格后,按要求写出课程设计报告,并于设计结束后1 周内提交。总体设计应配合软件总体模块结构图来说明软件应具有的功能。详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。3 2.总体方案设计2.1 主程序设计思想此动画程序要求结构化的显示系统时间和日期。程序要求能多次执行以上两种操作并有退出选项。则我们可以设计三个选项以供用户选择:D-DATE、T-TIME 和 Q-退出程序。三个选项分别可以用三个过程实现其功能。用户在出现的提示信息中输入小写字母“D”,马上显示系统当前日期;输入小写字母“T”,马上显示系统当前时间;输入小写字母“Q”,则退出程序。2.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-31 4 2.3 我完成部分模块说明1)其中主要对主程序和宏清屏命令进行了设计和编码,下面将分别对它们进行简要说明。主程序:CODE SEGMENT;代码段ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR BEGIN:MOV AH,0;设置 40*25 图形显示MOV AL,3 INT 10H CLEAR_SCREEN 00H,00H,19H,50H MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX;*显示宏定义*SHOW MACRO b LEA DX,b MOV AH,9 INT 21H ENDM SHOW WELCOME;显示数据段的内容SHOW INF01 SHOW INF02 SHOW INF03 SHOW INF04 SHOW INF05 SHOW INF06 INPUT:MOV AH,01;键盘输入并回写INT 21H CMP AL,44H;与 D 比较5 JNE L1;不相等转 L1 CALL DATEDISPLAY;相等调用 DATADISPLAY JMP EXIT1 L1:CMP AL,54H;与 T 比较JNE L2;不相等转 L2 CALL TIMEDISPLAY;相等调用 TIMEDISPLAY JMP EXIT1 L2:CMP AL,51H;与 Q 比较JE EXIT;相等转 EXIT SHOW INPUTER;显示输入错误SHOW INF05;显示输入提示JMP INPUT EXIT1:SHOW INF06;显示输入提示JMP INPUT;EXIT:MOV AH,4CH;结束INT 21H MAIN ENDP 主程序主要实现与用户的交互,首先程序会提示用户想要进行什么操作。是显示DATE,TIME 还是退出。这里对应的给用户提供的选项是“D”、“T”和“Q”。当用户输入他们的选项之后,主程序要判断用户的输入调用相应的功能模块来满足用户的要求。我们假设用户输入字符为 X,那么首先我们将X 与“D”比较。如果相同则程序调用DATE_DISPLAY模块为用户显示日期。若不为“D”则要继续与“T”想比较。相等则调用TIME_DISPLAY模块,不等则继续与“Q”相比较。相等则正常退出,不等则说明用户输入非法字符主程序返回到选择界面用户可以继续选择。特别说明:汇编语言的选择结构不同于C 语言的选择结构,程序设计过程中要特别小心。避免将造成潜在的BUG.3.详细设计3.1 主程序流程图6 3.2 DATE 子程序流程图开 始获取原中断类型1CH 设置新的中断类型执行中断处理程序保护现场中断返回读取系统时间保存原中断类型分别将时间的BCD 码转换为字符在指定位置写显存以显示日期恢复现场N N Y N Y 显示提示信息输入一个字符是否为 d调用 DATA 调用 TIME 是否为 t是否为 q结束Y N 开始7 3.3 TIME 子程序 流程图3.4 程序清单程序代码:;*清屏宏定义*CLEAR_SCREEN MACRO OP1,OP2,OP3,OP4;1 MOV AH,06H;2 MOV AL,00H;3 MOV BH,79H;4 MOV CH,OP1;5 MOV CL,OP2;6 MOV DH,OP3;7 MOV DL,OP4;8 INT 10H;9 MOV AH,02H;10 开 始获取原中断类型1CH 设置新的中断类型执行中断处理程序保护现场中断返回读取系统时间保存原中断类型分别将时间的BCD 码转换为字符在指定位置写显存以显示时间恢复现场8 MOV BH,00H;11 MOV DH,00H;12 MOV DL,00H;13 INT 10H;14 ENDM;15 STACK SEGMENT STACK;16 定义堆栈段DB 200 DUP(0);17 STACK ENDS;18 DATA SEGMENT;19 定义数据段WELCOME DB WELCOME YOU TO COME HERE!$;20 提示界面INF01 DB 0DH,0AH,THIS IS A DISPLAY PROGAME!$;21 INF02 DB 0DH,0AH,PLEASE INPUT D T OR Q TO SHOW DATA TIME OR EXIT!$INF03 DB 0DH,0AH,D:DISPLAY SYSTEM DATE;$;22 INF04 DB 0DH,0AH,T:DISPLAY SYSTEM TIME;$;23 INF05 DB 0DH,0AH,Q:QUIT.$;24 INF06 DB 0DH,0AH,PLEASE INPUT THE CHAR:$;25 INPUTER DB 0DH,0AH,INPUT ERROR!$;26 DATEDIS DB 00-00-0000,0AH,$;27 显示 DATE TIMEDIS DB 00,3AH,00,3AH,00,0AH,$;28 显示 TIME DATA ENDS;29 CODE SEGMENT;30 代码段ASSUME CS:CODE,DS:DATA,SS:STACK;31;*主程序*MAIN PROC FAR;32 BEGIN:;33 9 MOV AH,0;34 设置 40*25 图形显示MOV AL,3;35 INT 10H;36 CLEAR_SCREEN 00H,00H,19H,50H;37 MOV AX,DATA;38 MOV DS,AX;39 MOV AX,STACK;40 MOV SS,AX;41;*显示宏定义*SHOW MACRO b;42 LEA DX,b;43 MOV AH,9;44 INT 21H;45 ENDM;46 SHOW WELCOME;47 显示数据段的内容SHOW INF01;48 SHOW INF02;49 SHOW INF03;50 SHOW INF04;51 SHOW INF05;52 SHOW INF06 INPUT:MOV AH,01;53 键盘输入并回写INT 21H;54 CMP AL,44H;55 与 D 比较JNE L1;56 不相等转L1 CALL DATEDISPLAY;57 相等调用DATADISPLAY JMP EXIT1;58 L1:CMP AL,54H;59 与 T 比较JNE L2;60 不相等转L2 CALL TIMEDISPLAY;61 相等调用TIMEDISPLAY JMP EXIT1;62 10 L2:CMP AL,51H;63 与 Q 比较JE EXIT;64 相等转 EXIT SHOW INPUTER;65 显示输入错误SHOW INF05;66 显示输入提示JMP INPUT;67 EXIT1:SHOW INF05;68 显示输入提示JMP INPUT;69 EXIT:MOV AH,4CH;70 结束INT 21H;71 MAIN ENDP;72;*日期显示子程序*DATEDISPLAY PROC NEAR;73 MOV AH,2AH;74 取当前系统日期INT 21H;75 MOV AX,CX;76 送年份入AX MOV BX,10;77(BX)=10 LEA SI,DATEDIS+14;78 使 SI 指向年的最后一位MOV CX,4;79(CX)=4 PUSH DX;80 保存月日TAB:XOR DX,DX;81DX 清零DIV BX;82(DX,AX)/BX,商送 AX,余数送 DX ADD DL,30H;83 余数与 30H 相加变为字符的ASCII 码MOV SI,DL;84 余数送入SI 所指向的字节区DEC SI;85SI 减一LOOP TAB;86 循环POP DX;87DX 还原MOV AL,DL;88 日送 AL XOR AH,AH;89AH 清零DIV BL;90AX/BL,商送 AH,余数送 AL ADD AX,3030H;91 转变为数字字符的ASCII 码SUB SI,4;92 使 SI 指向日的第一位11 MOV SI,AX;93(AX)送 SI 所指向的字节区MOV AL,DH;94 月送 AL XOR AH,AH;95AH 清零DIV BL;96AX/BL,商送 AH,余数送 AL ADD AX,3030H;97 转变为数字字符的ASCII 码SUB SI,5;98 使 SI 指向月的第一位MOV SI,AX;99(AX)送 SI 所指向的字节区SHOW DATEDIS;100 显示日期RET;101 调用后返回;*时间显示子程序*TIMEDISPLAY PROC NEAR;102 MOV AH,2CH;103 INT 21H;104 MOV BX,10;105 LEA DI,TIMEDIS;106 MOV AL,CH;107 XOR AH,AH;108 DIV BL;109 ADD AX,3030H;110 MOV DI+1,AX;111 MOV AL,CL;112 XOR AH,AH;113 DIV BL;114 ADD AX,3030H;115 MOV DI+6,AX;116 MOV AL,DH;117 XOR AH,AH;118 DIV BL;119 ADD AX,3030H;120 MOV DI+11,AX;121 SHOW TIMEDIS;122 12 RET;123 时间调用返回CODE ENDS;124 END BEGIN;125 3.5 运行程序(1)、运行环境(软、硬件环境):硬件:8086 以上 CPU,内存 256M以上。软件:WINDOWS操作系统,MASM,LINK 汇编编译链接软件。(2)、程序界面:1.提示界面如图 6-1 图 6-1 13 2.显示日期如图 6-2 图 6-23.显示时间如图 6-3 图 6-3 14 4.错误输入如图 6-4 图 6-45.退出程序图 6-515 3.6 调试程序1)编译源文件,命名为clock.ASM;2)采用命令格式。MASM clock.ASM将生成一个OBJ文件,检查源程序中的错误,并改正。3)键入连接命令:LINK clock.OBJ,再次键入 clock回车,即可显示结果。4)时间在运行中出现了不准确性,对程序的循环次调整后,时间能正常运行。4总结通过对这一闹钟程序的制作,使我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查阅以下资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写了很多小程序。但这次是一个综合的程序,平时的很多程序都用到了,例如在程序中用到了不少的子程序,宏,这些子程序的设计是固定的,因此可以直接从指导资料中调用,大多只需要修改几个参数就可以,这大大方便了我们的设计,为我们节省了很多的时间。在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,当我看书查资料不能解决时,这是去找同学讨论一下,收获很大,可以使很多问题迎刃而解,直到问题最终解决。这次课程设计的大部分程序,都可以在新版汇编语言程序设计这本书中找到,这对我们的程序设计很有帮助,从这些资料中,我们可以看出这个时钟程序的基本流程,修改一些程序就可以实现这个时钟的基本功能,添加一些程序就可以实现这个时钟的附加功能。不可否认,本程序存在不少缺点和不足,但通过这次作业的却找出了自己在学习上的不足,对以后的工作也有指导作用。我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!16 5参考文献1、微型计算机原理与接口技术中国矿业大学出版社李长青主编2、汇编语言程序设计科学出版社卢中华等主编3、微型计算机汇编语言程序设计电子科学技术出版社龙尚福主编4、微机原理与汇编语言实用教程清华大学出版社王富荣主编5、微机原理与接口技术课程设计中南大学出版社王南兰主编6、微机原理及应用西南交通大学出版社晏寄夫主编7、32 位微机原理与接口技术化学工业出版社马兴录主编8、微机原理与接口技术电子科技大学出版社倪继烈主编9、微处理器与微型计算机清华大学出版社李三立主编10、微机原理与接口实验指导国防工业出版社黄海萍主编

    注意事项

    本文(汇编语言课程设计系统时间显示.pdf)为本站会员(索****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开