汇编语言课程设计报告显示系统时间_第1页
汇编语言课程设计报告显示系统时间_第2页
汇编语言课程设计报告显示系统时间_第3页
汇编语言课程设计报告显示系统时间_第4页
汇编语言课程设计报告显示系统时间_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

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

文档简介

1、汇编语言课程设计报告 题 目: 院 (系): 班 级: 姓 名: 学 号: 指导教师: 1设计主要任务这个程序主要是用来显示系统时间的程序。在这个程序中,主程序首先设置显示方式,取系统时间后将时间保存,继续设置显示方式,利用BIOS的INT 1AH的2号系统功能调用,将计算机系统的时间参数(BCD码)送入寄存器,将用BCD码表示的时、分、秒转换成ASCII码并进行显示。读字符串到al中进行判断是否为结束,然后进行显示时间。后又重新取系统时间。 然后进行一系列的判断是否有进位。有则进行进位操作,否则重新取系统时间。1.1设计任务与目标任务:对学生掌握知识的深度、运用理论去处理问题的能力、实验能力

2、、课程设计能力、书面及口头表达能力进行考核。汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。培养学生综合运用所学知识独立完成汇编程序课题的能力。使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识

3、和创新能力。培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。目标:用“时:分:秒”(均为两位)的形式连续显示系统时间。利用BIOS的INT 1AH的2号系统功能调用,将计算机系统的时间参数(BCD码)送入寄存器,将用BCD码表示的时、分、秒转换成ASCII码并进行显示。2 设计方案(1)在DOS环境下完成,先利用BIOS功能调用中显示器驱动程序的00H类型调用,设置显示器的显示模式为80*25彩色。(2)在屏幕中央显示提示信息(提示用户输入“D”或“T”或“Q”)。(3)然后对用户输入的字母进行判断,利用分支程序分别调用不同的子程序。

4、两个子程序的功能分别是显示当前日期(用2AH的DOS功能调用来取日期),显示当前时间(用2CH的DOS功能调用来取时间)。 必须用到的DOS功能调用:取当前系统日期:功能号为2AH,返回值送入CX,DX寄存器中。取当前系统时间:功能号为2CH,返回值送入CX,DX寄存器中。例如:2009年5月31日运行的程序中,使用2AH的DOS功能调用后,得到CX=07D9H, DX=051FH其中,CX中的数据为2009D,即年份。DX中的数据中可分析得:DH=05H=05D,即月份。 DL=1FH=31D,即日期号。最后应将数据转换为其字符对应的ASCII码,即32H,30H,30H,39H, 2DH,

5、30H,35H,2DH,33H,31H 再显示在屏幕上。即显示出: 2009-5-313 主程序设计其中主要对主程序和宏清屏命令进行了设计和编码,下面将分别对它们进行简要说明。主程序: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 D

6、X,b MOV AH,9 INT 21H ENDM SHOW WELCOME ;显示数据段的内容SHOW INF01 SHOW INF02 SHOW INF03 SHOW INF04 SHOW INF05SHOW INF06 INPUT: MOV AH,01 ;键盘输入并回写INT 21H CMP AL,44H ;与D比较JNE L1 ;不相等转L1CALL DATEDISPLAY ;相等调用DATADISPLAYJMP EXIT1 L1: CMP AL,54H ;与T比较JNE L2 ;不相等转L2CALL TIMEDISPLAY ;相等调用TIMEDISPLAYJMP EXIT1 L2:

7、CMP AL,51H ;与Q比较JE EXIT ;相等转EXITSHOW 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”比较。如

8、果相同则程序调用DATE_DISPLAY模块为用户显示日期。若不为“D”则要继续与“T”想比较。相等则调用TIME_DISPLAY模块,不等则继续与“Q”相比较。相等则正常退出,不等则说明用户输入非法字符主程序返回到选择界面用户可以继续选择。特别说明:汇编语言的选择结构不同于C语言的选择结构,程序设计过程中要特别小心。避免将造成潜在的BUG.3.1主程序流程图NNYNY显示提示信息输入一个字符是否为d调用DATA调用TIME是否为t 是否为q结束YN开始4 子程序设计4.1 DATE子程序流程图 开 始获取原中断类型1CH 保存原中断类型 设置新的中断类型 执行中断处理程序 保护现场 中断返回

9、 读取系统时间 保存原中断类型分别将时间的BCD码转换为字符在指定位置写显存以显示日期 恢复现场4.2 TIME子程序流程图 开 始获取原中断类型1CH 保存原中断类型 设置新的中断类型 执行中断处理程序 保护现场 中断返回 读取系统时间 保存原中断类型分别将时间的BCD码转换为字符在指定位置写显存以显示时间 恢复现场5 调试(1)、运行环境 (软、硬件环境):硬件:8086以上CPU,内存256M以上。软件:WINDOWS操作系统,MASM,LINK汇编编译链接软件。(2)、程序界面:1.提示界面 如图6-1图6-12.显示日期如图6-2图6-23. 显示时间如图6-3图 6-34.错误输入

10、如图6-4图 6-41)编译源文件,命名为jie3.ASM ;2)采用命令格式。MASM jie3.ASM将生成一个OBJ文件,检查源程序中的错误,并改正。3)键入连接命令:LINK jie3.OBJ,再次键入jie3回车,即可显示结果。4)时间在运行中出现了不准确性,对程序的循环次调整后,时间能正常运行。6 设计总结通过对这一闹钟程序的制作,使我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查阅以下资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。 这不是第一次用汇编语言来设计一

11、个小程序,平时做了很多实验,写了很多小程序。但这次是一个综合的程序,平时的很多程序都用到了,例如在程序中用到了不少的子程序,宏,这些子程序的设计是固定的,因此可以直接从指导资料中调用,大多只需要修改几个参数就可以,这大大方便了我们的设计,为我们节省了很多的时间。在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,当我看书查资料不能解决时,这是去找同学讨论一下,收获很大,可以使很多问题迎刃而解,直到问题最终解决。从资料中,我们可以看出这个时钟程序的基本流程,修改一些程序就可以实现这个时钟的基本功能,添加一些程序就可以实现这个时钟的附加功能。不可否认,本程序存在不少缺点和不足,但通过这次

12、作业的却找出了自己在学习上的不足,对以后的工作也有指导作用。我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!7 程序清单程序代码:;*清屏宏定义*CLEAR_SCREEN MACRO OP1,OP2,OP3,OP4 ;1 MOV AH,06H ;2MOV AL,00H ;3MOV BH,79H ;4MOV CH,OP1 ;5MOV CL,OP2 ;6MOV DH,OP3 ;7MOV DL,OP4 ;8INT 10H ;9MOV AH,02H ;10MOV BH,00H ;11MOV DH,00H ;12MOV DL,00H ;13INT 10H ;14ENDM ;15STACK

13、 SEGMENT STACK ;16定义堆栈段DB 200 DUP(0) ;17STACK ENDS ;18 DATA SEGMENT ;19定义数据段WELCOME DB WELCOME YOU TO COME HERE!$ ;20提示界面INF01 DB 0DH,0AH,THIS IS A DISPLAY PROGAME!$ ;21INF02 DB 0DH,0AH,PLEASE INPUT D T OR Q TO SHOW DATA TIME OR EXIT!$INF03 DB 0DH,0AH,D:DISPLAY SYSTEM DATE;$ ;22INF04 DB 0DH,0AH,T:DI

14、SPLAY SYSTEM TIME;$ ;23INF05 DB 0DH,0AH,Q:QUIT.$ ;24INF06 DB 0DH,0AH,PLEASE INPUT THE CHAR:$ ;25INPUTER DB 0DH,0AH,INPUT ERROR!$ ;26DATEDIS DB 00 - 00 - 0000,0AH,$ ;27显示DATETIMEDIS DB 00 ,3AH, 00 ,3AH, 00 ,0AH,$ ;28显示TIMEDATA ENDS ;29CODE SEGMENT ;30代码段ASSUME CS:CODE,DS:DATA,SS:STACK ;31;*主程序*MAIN P

15、ROC FAR ;32BEGIN: ;33MOV AH,0 ;34设置40*25图形显示MOV AL,3 ;35INT 10H ;36CLEAR_SCREEN 00H,00H,19H,50H ;37MOV AX,DATA ;38MOV DS,AX ;39MOV AX,STACK ;40MOV SS,AX ;41;*显示宏定义*SHOW MACRO b ;42LEA DX,b ;43MOV AH,9 ;44INT 21H ;45ENDM ;46SHOW WELCOME ;47显示数据段的内容SHOW INF01 ;48SHOW INF02 ;49SHOW INF03 ;50SHOW INF04

16、;51SHOW INF05 ;52SHOW INF06 ;53INPUT: MOV AH,01 ;53键盘输入并回写INT 21H ;54CMP AL,44H ;55与D比较JNE L1 ;56不相等转L1CALL DATEDISPLAY ;57相等调用DATADISPLAYJMP EXIT1 ;58L1: CMP AL,54H ;59与T比较JNE L2 ;60不相等转L2CALL TIMEDISPLAY ;61相等调用TIMEDISPLAYJMP EXIT1 ;62L2: CMP AL,51H ;63与Q比较JE EXIT ;64相等转EXITSHOW INPUTER ;65显示输入错误S

17、HOW INF05 ;66显示输入提示JMP INPUT ;67EXIT1: SHOW INF05 ;68显示输入提示JMP INPUT ;69EXIT: MOV AH,4CH ;70结束INT 21H ;71MAIN ENDP ;72;*日期显示子程序*DATEDISPLAY PROC NEAR ;73MOV AH,2AH ;74取当前系统日期INT 21H ;75MOV AX, CX ;76送年份入AXMOV BX, 10 ;77 (BX)=10LEA SI, DATEDIS + 14 ;78使SI指向年的最后一位MOV CX, 4 ;79(CX)=4PUSH DX ;80保存月日TAB:

18、 XOR DX, DX ;81DX清零DIV BX ;82(DX,AX)/BX,商送AX,余数送DXADD DL, 30H ;83余数与30H相加变为字符的ASCII码MOV SI, DL ;84余数送入SI所指向的字节区DEC SI ;85SI减一LOOP TAB ;86循环POP DX ;87DX还原MOV AL, DL ;88日送ALXOR AH, AH ;89AH清零DIV BL ;90AX/BL,商送AH,余数送ALADD AX, 3030H ;91转变为数字字符的ASCII码SUB SI, 4 ;92使SI指向日的第一位MOV SI, AX ;93(AX)送SI所指向的字节区MOV AL, DH ;94月送ALXOR AH, AH ;95AH清零DIV BL ;96AX/BL, 商送AH,余数送ALADD AX, 3030H ;97转变为数字字符的ASCII码SUB SI, 5 ;98使SI指向月的第一位MOV SI, AX ;99(AX)送SI所指向的字节区SHOW DATEDIS ;100显示日期RET ;101调用后返回;*时间显示子程序*TIMEDISPLAY PROC NEAR ;102MOV AH,2CH ;103INT 21H ;104MOV BX,10 ;105LEA DI,TIMEDI

温馨提示

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

评论

0/150

提交评论