《汇编语言》课程设计报告显示系统时间.doc

上传人:scccc 文档编号:11254472 上传时间:2021-07-18 格式:DOC 页数:24 大小:348.50KB
返回 下载 相关 举报
《汇编语言》课程设计报告显示系统时间.doc_第1页
第1页 / 共24页
《汇编语言》课程设计报告显示系统时间.doc_第2页
第2页 / 共24页
《汇编语言》课程设计报告显示系统时间.doc_第3页
第3页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《《汇编语言》课程设计报告显示系统时间.doc》由会员分享,可在线阅读,更多相关《《汇编语言》课程设计报告显示系统时间.doc(24页珍藏版)》请在三一文库上搜索。

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

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,即日期号。最后应将数据转换为其字符对应的ASC

5、II码,即 32H,30H,30H,39H, 2DH,30H,35H,2DH,33H,31H 再显示在屏幕上。 即显示出:2009-5-313主程序设计其中主要对主程序和宏清屏命令进行了设计和编码,下面将分别对它们 进行简要说明。主程序:CODE SEGMENT;代码段ASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROC FARBEGIN:MOV AH,0MOV AL,3INT 10H;设置40*25图形显示CLEAR_SCREEN 00H,00HJ9H,50HMOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AX*SHOW MACRO

6、bLEA DX,bMOV AH,9INT21HENDMSHOW WELCOMESHOW INF01SHOW INF02SHOW INF03SHOW INF04SHOW INFOSSHOW INF06INPUT: MOV AH,01INT21HCMPAL,44HJNEL1CALL DATEDISPLAYDATADISPLAYJMPEXIT1;显示数据段的内容;键盘输入并回写;与。比较;不相等转L1;相等调用LI:CMPAL,54HJNE L2L2CALL TIMEDISPLAY TIMEDISPLAYJMPEXIT1L2:CMPAL,51HJE EXITSHOW INPUTERSHOW INFO

7、SJMP INPUTEXIT 1: SHOW INF06JMP INPUTEXIT: MOV AH,4CHINT21H;与丁比较;不相等转;相等调用;与(2比较 湘等转EXIT;显示输入错误;显示输入提示;显示输入提示;结束MAIN ENDP主程序主要实现与用户的交互,首先程序会提示用户想要进行什么操 作。是显示DATE,TIME还是退出。这里对应的给用户提供的选项是“D”、 “T”和“Q”。当用户输入他们的选项之后,主程序要判断用户的输入调用 相应的功能模块来满足用户的要求。我们假设用户输入字符为X,那么首先 我们将X与“D”比较。如果相同则程序调用DATE_DISPLAY模块为用户显 示日

8、期。若不为“D”则要继续与“T”想比较。相等则调用TIME_DISPLAY 模块,不等则继续与“Q”相比较。相等则正常退出,不等则说明用户输入非 法字符主程序返回到选择界面用户可以继续选择。特别说明:汇编语言的选择结构不同于C语言的选择结构,程序设计过 程中要特别小心。避免将造成潜在的BUG3. 1主程序流程图开始4子程序设计4.2 TIME子程序流程5调试(1) 、运行环境(软、硬件环境):硬件:8086以上CPU,内存256M以上。软件:WINDOWS操作系统,MASM, LINK汇编编译链接软件。(2) 、程序界面:1.提示界面如图612显示日期如图62劭 l:itrJIE3.T OR

9、Q TO SHOW DfiTfi TIME OR EXIT? DATE; TINE;CHAR:D 06 - 28 - 2012WELCOME VOU TO COME HERE! THIS IS A DISPLAV PROGAME? PLEASE INPUT ,eD D:DISPLAY SYSTEM T:DISPLAY SYSTEM Q:QUITPLEASE INPUT THEQ:QUIT.in图623.显示时间如图63CHfiR:D 06 - 28 - 2012DATE; TIME;Q:QUIT.T 10 : 06:18WELCOME VOU TO COME HERE!THIS IS fi D

10、ISPLAY PROGfiME?PLEASE INPUT “ T OR V TO SHOW DATA TIME OR EKIT? D:DISPLAY SVSTEMT:DISPLAY SVSTEMQ:QUITPLEASE INPUT THEQ:QUIT_in图6-34错误输入如图6-4劭 l:itrJIE3.CHAR:D 06 - 28 - 2012DATE; TIME;WELCOME VOU TO COME HERE!THIS IS A DISPLAV PROGAME?PLEASE INPUT OR “Q TO SHOW DfiTfi TIME OR EXIT! D:DISPLAY SVSTE

11、M T:DISPLAY SYSTEMQ:QUIT.PLEASE INPUT THEQ:QUIT.T 10 : 06:18Q:QUIT.RINPUT ERROR? Q:QUTT in图6-41)编译源文件,命名为jie3.ASM ; 2)采用命令格式。MASMJie3ASM 将生成一个OBJ文件,检査源程序中的错误,并改正。3)键入连接命令: LINK JIe3.OBJ,再次键入jie3回车,即可显示结果。4)时间在运行中出现 了不准确性,对程序的循环次调整后,时间能正常运行。6设计总结通过对这一闹钟程序的制作,使我对汇编语言的基本知识的使用更加熟 练,同时也增加了我对汇编语言的一些认识,在作业

12、完成过程中通过和同学 的交流,也增加了合作的技巧。通过査阅以下资料也学到了一些课本上没有 的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写 了很多小程序。但这次是一个综合的程序,平时的很多程序都用到了,例如 在程序中用到了不少的子程序,宏,这些子程序的设计是固定的,因此可以 直接从指导资料中调用,大多只需要修改几个参数就可以,这大大方便了我 们的设计,为我们节省了很多的时间。在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时, 当我看书査资料不能解决时,这是去找同学讨论一下,收获很大,可以使很 多问题迎刃而解,直到问题

13、最终解决。从资料中,我们可以看出这个时钟程 序的基本流程,修改一些程序就可以实现这个时钟的基本功能,添加一些程 序就可以实现这个时钟的附加功能。不可否认,本程序存在不少缺点和不足, 但通过这次作业的却找出了自己在学习上的不足,对以后的工作也有指导作 用。我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!7程序清单程序代码:*;2;3;4;5;6;7;8;9;10;12;13;14;15;16定义堆栈段CLEAR_SCREEN MACRO OP1,OP2,OP3,OP4MOV AH,06HMOV AL,OOHMOV BH,79HMOV CH,OP1MOV CL,OP2MOV DH,

14、OP3MOV DL,OP4INT 10HMOV AH,02HMOV BH,00HMOV DH,00HMOV DL,00HINT 10HENDMSTACK SEGMENT STACK;17MAIN PROC FARBEGIN:MOV AH,0MOV AL,3;32;33;34设置40*25图形显示DB 200 DUP(O)STACK ENDSDATA SEGMENT;19定义数据段WELCOME DB WELCOME YOU TO COME HERE!$* ;20 提示 界面INF01 DB 0DH,0AH, THIS IS A DISPLAY PROGAME!$*;21INF02 DB 0DH

15、,0AH, PLEASE INPUT ,D,* T OR ”Q” TO SHOW DATA TIME OR EXIT!$fINF03 DB 0DH,0AH, D:DISPLAY SYSTEM DATE;$*;22INF04 DB 0DH,0AH,T:DISPLAY SYSTEM TIME;$*;23INFOS 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 显示 D

16、ATETIMEDIS DB 00 ,3AH; 00 ,3AH; 00;28 显示 TIMEDATA ENDS;29CODE SEGMENT;30 代码段ASSUME CS:CODE,DS:DATA,SS:STACK;31丄 上丄 上 J*J*9znEni/JINT 10H;36CLEAR_SCREEN 00H,00H,19H,50HMOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AX;37;38;39;40;41* B立 *SHOW MACRO bLEA DX,bMOV AH,9INT21HENDMSHOW WELCOMESHOW INF01SHOW INF02S

17、HOW INF03SHOW INF04SHOW INFOSSHOW INF06INPUT: MOV AH,01 写INT21HCMPAL,44HJNEL1CALL DATEDISPLAYDATADISPLAYJMPEXIT1LI:CMPAL,54HJNE L2;42;43;44;45;46;47显示数据段的内容;48;49;50;51;52;53;53键盘输入并回;54;55与D比较;56不相等转LI;57相等调用;58;59与T比较;60不相等转L2CALL TIMEDISPLAY TIMEDISPLAYJMPEXIT1L2:CMPAL,51HJE EXITSHOW INPUTERSHOW

18、INF05JMP INPUTEXIT1: SHOW INF05示JMP INPUTEXIT: MOV AH,4CHINT21HMAIN ENDP;61相等调用;62;63与Q比较;64相等转EXIT;65显示输入错误;66显示输入提示;67;68显示输入提;69;70结束;71;72* 日 期显示子程序 *DATEDISPLAY PROC NEARMOV AH,2AHINT21HMOV AX, CXMOV BX, 10LEA SI, DATEDIS + 14MOV CX, 4PUSH DXTAB: XOR DX, DXDIV BXADD DL, 30H码MOV SI, DL;73;74取当前系

19、统日期;75;76送年份入AX;77 (BX)=10;78使SI指向年的最后一位;79(CX)=4;80保存月日 ;81DX清零;82(DX,AX)/BX,商送 AX,余数送 DX ;83余数与30H相加变为字符的ASCII;84余数送入SI所指向的字节区DEC SI;85SI 减一LOOPTABPOPDXMOV AL, DLXORAH,AHDIV BLADD AX, 3030HSUB SI, 4MOV SI, AX MOV AL, DH XORAH,AHDIV BLADD AX, 3030H 码SUB SI, 5MOV SI, AX SHOW DATEDIS RET*;86循环;87DX还原

20、;88日送AL;89AH清零;90AX/BL,商送AH,余数送AL ;91转变为数字字符的ASCII码 ;92使SI指向日的第一位 ;93(AX)送SI所指向的字节区;94月送AL;95AH清零;96AX/BL,商送AH,余数送AL;97转变为数字字符的ASCII;98使SI指向月的第一位;99(AX)送SI所指向的字节区 ;100显示日期 ;101调用后返回;112TIMEDISPLAY PROC NEAR;102MOV AH,2CH;103INT21H;104MOV BX,10;105LEA DI,TIMEDIS;106MOV AL,CH;107XOR AH,AH;108DIV BLADD AX,3030HMOV DI+1,AXMOV AL,CLXOR AH,AHDIV BLADD AX,3030HMOV DI+6,AXMOV AL,DHXOR AH,AHDIV BLADD AX,3030HMOV DI+11,AX SHOW TIMEDIS RETCODE ENDSEND BEGIN;113;114;115;116;117;118;119;120;121;122;123时间调用返回;124;125

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1