




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北 华 航 天 工 业 学 院?微机原理与汇编语言程序设计?课程设计报告报告题目: 年.月.日.星期,当前时间显示 作者所在系部: 计算机科学与工程 作者所在专业: 计算机应用 作者所在班级: 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 12月31日 北华航天工业学院教务处制前 言汇编语言是一门程序设计语言,学习程序设计的思想与方法既是学习的重点也是难点,课设的目标就是要帮助读者提高程序设计的能力,较深入地掌握汇编语言程序设计的
2、思想与方法。学习汇编语言时,有些同学已经学习过例如C语言等高级语言,将为我们理解程序设计的思想打下良好根底;但也可能从未学习过其他语言,虽然框框较少,但建立计算机语言与程序设计的概念将是一大难题。汇编语言是多类知识交叉的学科,一局部知识往往还连带着其他的相关内容,如果处理不好这些连带的内容,将影响学习者对当前知识点的理解。但是如果先扫清外围,例如先介绍CPU与存储器的内部结构、数据形式,再介绍指令与指令系统、程序设计方法,虽然可以做到内容单一,也容易接受,但教学未以程序设计为线索展开,可能在开始学习后相当长一段时间里不接触汇编语言程序设计的内容,将令学习过程抽象无趣。本书考虑到这些情况,采用了
3、实践先行的方法,以一个完整的程序实例引导,首先通过演示与动手,对程序设计及一些根本概念、根本方法建立感性认识,从而屏蔽了一些相关知识带来的干扰,在此根底上再逐一展开。学习的过程除了理解还有记忆与模仿,人们往往都是从死记、模仿走向创新的,实践引导的过程将为模仿创造条件,也提供了记忆的线索与内容。以程序为线索展开,将使我们在整个学习过程中的每一步都目标明确,主题清晰,根底扎实,在不知不觉中登上程序设计的颠峰。 汇编语言的主要用途之一是涉及硬件的开发,目前社会对具有一定硬件根底的计算机 人才需求较旺,本书围绕输入、输出程序设计介绍了假设干常用芯片的结构与程序设计方法,即加强了涉及硬件的程序设计技术的
4、教学,也有助于提高设计实际应用系统的能力。目 录第章 绪论1.1 引言.61. 选题的背景 .62设计思路和预期目标.61.2 课程设计目的与意义.61.3 课程设计内容与要求.61.4 课程设计地点及设计环境.6第章 系统设计2.1 系统框架设计7 主程序流程图.72.2 系统模块功能说明.7主程序说明.7 子程序及宏指令说明.8第3章 源程序代码设计.8第4章 程序的调试和运行18 结 论.21参考文献.21内容摘要在用汇编语言编程时,常常需要将结果数据按不同的数制形式显示出来,而计算机中的机器数是按二进制形式进行处理和存储的,如何将它们进行转换,分别按二进制形式显示在CRT显示器上。调用
5、DOS中断,得到系统当前时间,并将其二进制转换成ASCII码。本文给出具体的实现方法。关键词 汇编 调用 子程序 二进制 中断 循环 延迟第章绪论1.1 引言1. 选题的背景日常生活中我会遇到许多时间和日期,时间和日期对我们的生活是十分重要的。平时只是知道看时间,而不知道那时钟的原理。通过这次的课程设计让我知道了其中的微妙。对汇编中的一些语言认识更加一层。特别是中断指令,循环程序、延迟等了解深了一点。2设计思路和预期目标 设计思路利用DOS的2AH和2CH号系统功能调用,将计算机系统的时间日期参数BCD码送入存放器。其中CH 和CL中保存的是小时数和分钟数;DH中保存的是秒钟数,C
6、X中保存的是年,DL中保存的是日,将BCD码表示的时,分,秒,日,年转换成ASC I I码并送入屏幕显示。此程序完成显示系统的当前日期和时间的功能。1.2 课程设计目的与意义 课程设计目的与意义在于综合运用所学知识解决实际问题,培养独立开发、设计、调试、运行汇编语言程序的能力;稳固课上的内容,深化程序的设计开发能力;表达出自身的学习效果和特长。1.3 课程设计内容与要求 设计要求:模块设计、代码编制,程序调试与运行,功能完善。设计内容:显示当前的及时间。1.4 课程设计地点及设计环境 课程设计地点:图书馆五楼二号机房。 设 计 环 境 : ,WINDOWS或DOS操作系统,EDITplus或其
7、他编辑程序。 硬件:8086及以上机型。第章 系统设计2.1 系统框架设计 主程序流程图 屏幕出始化读取时间将“小时值压缩BCD数的高位和低位分别转换为ACSII码。开始显示时间显示日期显示星期显示月份显示年份恢复现场中断返回 系统模块功能说明主程序说明利用DOS的2AH和2CH号系统功能调用,将计算机系统的时间日期参数BCD码送入存放器。其中CH 和CL中保存的是小时数和分钟数;DH中保存的是秒钟数,CX中保存的是年,DL中保存的是日,将BCD码表示的时,分,秒,日,年转换成ASC I I码并送入屏幕显示。 子程序及宏指令说明 DISP MACRO CHAR ;显示字符 GETNUM MAC
8、RO CHAR ;显示数字 GETWEEK MACRO CHAR ;显示星期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即可得到相应数字的ASCI
9、I码 mov byte ptr di,al inc di 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
10、 POP DX POP AXENDMGETNUM MACRO CHAR ;显示数字 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:IN
11、C SI INC SI LOOP LOOP1 MOV DX,SI MOV AH,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 diviso
12、rs DW 10000, 1000, 100, 10, 1 results DB 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 D
13、B 'Wednesday$' THU DB 'Thursday$' FRI DB 'Friday$' SAT DB 'Saturday$' JAN DB 'January$' FEB DB 'February$' MAR DB 'March$' APR DB 'April$' MAY DB 'May$' JUN DB 'June$' JUL DB 'July$' AUG DB 'August$' SEP
14、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,0 mov dh,0 mov dl,0 int 10h M
15、OV 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 21H JE LLL MOV AH,4CH INT 21HCO
16、DES ENDS END START第章程序的调试和运行该汇编编译环境是MasmEdit,是一个集成开发环境,编译,链接,运行全部集成在一起。程序编好后,直接点汇编按钮,就会提示你有无错误,刚刚编好第一次汇编时,出现了好多错误,其中很大一局部是编写代码时不小心,打字出现的错,其中,分号的错误是致命的,它让汇编无法进行。参考网上的汇编程序,在改了n次的代码后界面终于出现。到达了预期的效果。结 论本文的主要内容是介绍用汇编语言8086/DOS实现一个显示系统时间的程序,在界显示系统时间,在设计过程中,首先是按照题目所给的具体要求,根据自己的设计思路,画出流程图,然后查阅相关资料,写出流程图中的各段
17、子程序,把子程序放在Masm for Windows集成环境中进行调试,找出程序中的错误,并进行修改和不断完善,以得到符合要求的程序。有了这些子程序后,我们就可以根据要求写出源程序,但在写源程序的过程中遇到了很多困难,经过反复调试跟修改,最终得到了符合要求的源程序。一周的汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的缺乏。通过这次课程设计,我稳固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。在整个程序的编写中,调试占了很大局部的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,根本到达了能独立阅读、编制和调试一定规模的汇编语言程序的水平。另外,就是我对这门课内容的学习感受。要学好这门课,以我愚见无非有以下三点:1 课本上应该记住的东西一定要记住,记不住就没法做题,例如指令,寻址方式等等假设记住你做题就会做,看程序也就能看懂,记不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渗透市场意识的2024年国际商业美术设计师考试试题及答案
- 六上生命教育试题及答案
- 2024年纺织设计行业新趋势试题及答案
- 助理广告师考试重点内容概述试题及答案
- 分析纺织品市场趋势对检验的影响因素试题及答案
- 2024年纺织对接新技术试题及答案
- 智能家居知识试题及答案
- 极致提升广告设计师能力试题及答案
- 2024年纺织品检验员证书考试深度分析试题及答案
- 意外伤害试题及答案库
- 1-江苏省冶金等工贸企业安全生产标准化运行质量审计评分表-
- 弘扬航天精神拥抱星辰大海!课件高一上学期载人航天主题班会
- 《excel数据分析》课件
- DB1310-T 223-2020 小麦节水绿色丰产栽培技术规程
- 小学六年级科学(人教版)《各种各样的自然资源》-教学设计、课后练习、学习任务单
- 215kWh工商业液冷储能电池一体柜用户手册
- 燃气安全事故处理及应急
- 汽车发动机构造与维修课件 第六章 燃油供给系
- 可再生能源预测技术研究
- 2024-2030年中国耐火材料行业供需分析及发展前景研究报告
- 部门级安全培训考试题附答案【考试直接用】
评论
0/150
提交评论