微机原理与汇编语言程序设计课程设计报告.月.日.星期,当前时间显示.doc

上传人:laozhun 文档编号:2385974 上传时间:2023-02-17 格式:DOC 页数:20 大小:81KB
返回 下载 相关 举报
微机原理与汇编语言程序设计课程设计报告.月.日.星期,当前时间显示.doc_第1页
第1页 / 共20页
微机原理与汇编语言程序设计课程设计报告.月.日.星期,当前时间显示.doc_第2页
第2页 / 共20页
微机原理与汇编语言程序设计课程设计报告.月.日.星期,当前时间显示.doc_第3页
第3页 / 共20页
微机原理与汇编语言程序设计课程设计报告.月.日.星期,当前时间显示.doc_第4页
第4页 / 共20页
微机原理与汇编语言程序设计课程设计报告.月.日.星期,当前时间显示.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《微机原理与汇编语言程序设计课程设计报告.月.日.星期,当前时间显示.doc》由会员分享,可在线阅读,更多相关《微机原理与汇编语言程序设计课程设计报告.月.日.星期,当前时间显示.doc(20页珍藏版)》请在三一办公上搜索。

1、北 华 航 天 工 业 学 院微机原理与汇编语言程序设计课程设计报告报告题目: 年.月.日.星期,当前时间显示 作者所在系部: 计算机科学与工程 作者所在专业: 计算机应用 作者所在班级: 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 12月31日 北华航天工业学院教务处制前 言汇编语言是一门程序设计语言,学习程序设计的思想与方法既是学习的重点也是难点,课设的目标就是要帮助读者提高程序设计的能力,较深入地掌握汇编语言程序设计的思想与方法。学习汇编语言时,有些同学已经学习过例如C语言等高级语言,将为我们理解程序设计的思想打下良好基础;但也可能从未学习过其他语言,虽然框框较少,但建立计算

2、机语言与程序设计的概念将是一大难题。汇编语言是多类知识交叉的学科,一部分知识往往还连带着其他的相关内容,如果处理不好这些连带的内容,将影响学习者对当前知识点的理解。但是如果先扫清外围,例如先介绍CPU与存储器的内部结构、数据形式,再介绍指令与指令系统、程序设计方法,虽然可以做到内容单一,也容易接受,但教学未以程序设计为线索展开,可能在开始学习后相当长一段时间里不接触汇编语言程序设计的内容,将令学习过程抽象无趣。本书考虑到这些情况,采用了实践先行的方法,以一个完整的程序实例引导,首先通过演示与动手,对程序设计及一些基本概念、基本方法建立感性认识,从而屏蔽了一些相关知识带来的干扰,在此基础上再逐一

3、展开。学习的过程除了理解还有记忆与模仿,人们往往都是从死记、模仿走向创新的,实践引导的过程将为模仿创造条件,也提供了记忆的线索与内容。以程序为线索展开,将使我们在整个学习过程中的每一步都目标明确,主题清晰,基础扎实,在不知不觉中登上程序设计的颠峰。 汇编语言的主要用途之一是涉及硬件的开发,目前社会对具有一定硬件基础的计算机 人才需求较旺,本书围绕输入、输出程序设计介绍了若干常用芯片的结构与程序设计方法,即加强了涉及硬件的程序设计技术的教学,也有助于提高设计实际应用系统的能力。目 录第章 绪论1.1 引言.61. 选题的背景 .62设计思路和预期目标.61.2 课程设计目的与意义.61.3 课程

4、设计内容与要求.61.4 课程设计地点及设计环境.6第章 系统设计2.1 系统框架设计72.1.1 主程序流程图.72.2 系统模块功能说明.72.2.1主程序说明.72.2.2 子程序及宏指令说明.8第3章 源程序代码设计.8第4章 程序的调试和运行18 结 论.21参考文献.21内容摘要在用汇编语言编程时,常常需要将结果数据按不同的数制形式显示出来,而计算机中的机器数是按二进制形式进行处理和存储的,如何将它们进行转换,分别按二进制形式显示在CRT显示器上。调用DOS中断,得到系统当前时间,并将其二进制转换成ASCII码。本文给出具体的实现方法。关键词 汇编 调用 子程序 二进制 中断 循环

5、 延迟第章绪论1.1 引言1. 选题的背景日常生活中我会遇到许多时间和日期,时间和日期对我们的生活是十分重要的。平时只是知道看时间,而不知道那时钟的原理。通过这次的课程设计让我知道了其中的奥妙。对汇编中的一些语言认识更加一层。特别是中断指令,循环程序、延迟等了解深了一点。2设计思路和预期目标 设计思路利用DOS的2AH和2CH号系统功能调用,将计算机系统的时间日期参数(BCD码)送入寄存器。其中CH 和CL中保存的是小时数和分钟数;DH中保存的是秒钟数,CX中保存的是年,DL中保存的是日,将BCD码表示的时,分,秒,日,年转换成ASC I I码并送入屏幕显示。此程序完成显示系统的当前日期和时间

6、的功能。1.2 课程设计目的与意义 课程设计目的与意义在于综合运用所学知识解决实际问题,培养独立开发、设计、调试、运行汇编语言程序的能力;巩固课上的内容,深化程序的设计开发能力;体现出自身的学习效果和特长。1.3 课程设计内容与要求 设计要求:模块设计、代码编制,程序调试与运行,功能完善。设计内容:显示当前的年.月.日.星期及时间。1.4 课程设计地点及设计环境 课程设计地点:图书馆五楼二号机房。 设 计 环 境 :软件:MASM5.0逻辑 ,WINDOWS或DOS操作系统,EDITplus或其他编辑程序。 硬件:8086及以上机型。第章 系统设计2.1 系统框架设计2.1.1 主程序流程图

7、屏幕出始化读取时间将“小时值”压缩BCD数的高位和低位分别转换为ACSII码。开始显示时间显示日期显示星期显示月份显示年份恢复现场中断返回2.2 系统模块功能说明2.2.1主程序说明利用DOS的2AH和2CH号系统功能调用,将计算机系统的时间日期参数(BCD码)送入寄存器。其中CH 和CL中保存的是小时数和分钟数;DH中保存的是秒钟数,CX中保存的是年,DL中保存的是日,将BCD码表示的时,分,秒,日,年转换成ASC I I码并送入屏幕显示。2.2.2 子程序及宏指令说明 DISP MACRO CHAR ;显示字符 GETNUM MACRO CHAR ;显示数字 GETWEEK MACRO C

8、HAR ;显示星期GETMONTH MACRO CHAR ;显示月份第章源程序代码设计showyear macro char push ax push si push cx push dx push bx push di mov ax,char mov si, offset divisors mov di, offset results mov cx,5 aa: mov dx,0 div word ptr si ;除法指令的被除数是隐含操作数,此处为dx:ax,商ax,余数dx add al,48 ;商加上48即可得到相应数字的ASCII码 mov byte ptr di,al inc di

9、add si,2 mov ax,dx loop aa mov cx,4 mov di, offset results bb: cmp byte ptr di,0 ;不输出前面的0字符 jne print inc di loop bbprint: mov dx,di mov ah,9 int 21h pop di pop bx pop dx pop cx pop si pop axendmDISP MACRO CHAR ;显示字符 PUSH AX PUSH DX MOV DL,CHAR MOV AH,2 INT 21H POP DX POP AXENDMGETNUM MACRO CHAR ;显示

10、数字 PUSH AX PUSH DX PUSH CX MOV AL,CHAR AAM MOV DH,AL MOV DL,AH OR DL,30H MOV AH,2 INT 21H MOV DL,DH OR DL,30H MOV AH,2 INT 21H POP CX POP DX POP AX ENDMGETWEEK MACRO CHAR ;显示星期 PUSH AX PUSH DX PUSH SI PUSH CX LEA SI,D_TAB MOV AL,CHAR XOR AH,AH MOV CX,AXLOOP1:INC SI INC SI LOOP LOOP1 MOV DX,SI MOV AH

11、,9 INT 21H POP CX POP SI POP DX POP AXENDMGETMONTH MACRO CHAR ;显示月份 PUSH AX PUSH DX PUSH SI PUSH CX LEA SI,M_TAB MOV AL,CHAR DEC AL XOR AH,AH MOV CX,AX LOOP2:INC SI INC SI LOOP LOOP2 MOV DX,SI MOV AH,9 INT 21H POP CX POP SI POP DX POP AXENDMDATAS SEGMENT divisors DW 10000, 1000, 100, 10, 1 results D

12、B 0,0,0,0,0,$ ;存放五位数ASCII码 BUF DB A$ BUF1 DB YUE$ D_TAB DW SUN,MON,TUE,WED,THU,FRI,SAT M_TAB DW JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DCE,TIM SUN DB Sunday$ MON DB Monday$ TUE DB Tuesday$ WED DB Wednesday$ THU DB Thursday$ FRI DB Friday$ SAT DB Saturday$ JAN DB January$ FEB DB February$ MAR DB

13、 March$ APR DB April$ MAY DB May$ JUN DB June$ JUL DB July$ AUG DB August$ SEP DB September$ OCT DB October$ NOV DB November$ DCE DB December$ TIM DB .M. $DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX LLL: mov ah,2 mov bh,

14、0 mov dh,0 mov dl,0 int 10h MOV AH,2CH INT 21H GETNUM CH DISP 3AH GETNUM CL DISP 3AH GETNUM DH DISP 00H CMP CH,12 JA P DISP 41H JMP AP: DISP 50HA: MOV DX,M_TAB+24 MOV AH,9 INT 21H MOV AH,2AH INT 21H GETWEEK AL DISP 2CH GETMONTH DH DISP 00H GETNUM DL DISP 2CH showyear CX MOV AH,06H MOV DL,0FFH INT 21

15、H JE LLL MOV AH,4CH INT 21HCODES ENDS END START第章程序的调试和运行该汇编编译环境是MasmEdit,是一个集成开发环境,编译,链接,运行全部集成在一起。程序编好后,直接点汇编按钮,就会提示你有无错误,刚刚编好第一次汇编时,出现了好多错误,其中很大一部分是编写代码时不小心,打字出现的错,其中,分号的错误是致命的,它让汇编无法进行。参考网上的汇编程序,在改了n次的代码后界面终于出现。达到了预期的效果。结 论本文的主要内容是介绍用汇编语言(8086/DOS)实现一个显示系统时间的程序,在界显示系统时间,在设计过程中,首先是按照题目所给的具体要求,根据自

16、己的设计思路,画出流程图,然后查阅相关资料,写出流程图中的各段子程序,把子程序放在MasmforWindows集成环境中进行调试,找出程序中的错误,并进行修改和不断完善,以得到符合要求的程序。有了这些子程序后,我们就可以根据要求写出源程序,但在写源程序的过程中遇到了很多困难,经过反复调试跟修改,最终得到了符合要求的源程序。一周的汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指

17、令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。另外,就是我对这门课内容的学习感受。要学好这门课,以我愚见无非有以下三点:1) 课本上应该记住的东西一定要记住,记不住就没法做题,(例如指令,寻址方式等等)若记住你做题就会做,看程序也就能看懂,记不住见了它就会对它不知所措,一脸茫然。2)预习很重要,这一点不仅适用于这一科的学习,确切的说它适用于任何一科,有的同学这一点作的不好,上课只知道竖着两个耳朵傻傻的听老师讲课,也不注意动动脑子随时思考,延续以前填鸭式的学习方式,想让老师讲给所有的东西,殊不知很多东西还要自己从书本获得。这就难免出现听不懂的情况,这好比让一个不懂外语的人听外语录音,在他的心里,听外语就像听天书一般,所以说你要学一点新东西,前提是你对它要有一点了解,不然的话你所作的一切只不过是在浪费时间,浪费金钱,浪费生命。3)理论与实践相结合,不懂的地方应勤问老师勤问同学,直到把它搞懂为止。参考文献

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号