ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:70.50KB ,
资源ID:7095528      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7095528.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(判断某一年是否为闰年课程设计.doc)为本站会员(yjrm16270)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

判断某一年是否为闰年课程设计.doc

1、郑州航空工业管理学院微机原理课程设计说明书2012 级 电气工程及其自动化 专业 1206972 班级题 目 判断某一年是否为闰年 姓 名 贾新亮 学号 120697211 指导教师 王义琴 职称 教授 二 一二 年 十二 月 十二 日摘要随着科学技术的迅速发展,微机的应用越来越普遍,在此设计中利用 DOS 21H 中断类型的 10 号键盘功能调用,将从键盘接收的表示年份数值的字符串按字节存入缓冲区。将字符串中的每个字符转换为对应的十进制数值(利用 09这 10 个数的 ASCll 码值比其本身大 30H 的关系) ,利用判断某年是否为闰年的表达式,输出该年是否为闰年的信息。解决本问题的关键是

2、找到判断闰年的方法。判断闰年的规则是:如果某一年能被 4 整除但不能被 100 整除或者该年能被 400 整除,则该年为闰年。判断某年是否为闰年的汇编语言的表达式为:(AX)MOD 4 EQ 0)AND(AX)MOD 100 NE 0)OR(AX)MOD 400 EQ 0)关键词:判断闰年 中断 字符串输入输出一、判断某一年是否为闰年的基本原理 本设计是根据闰年的计算方法,利用汇编语言编写的一个简单的判断闰年的程序。根据判断闰年规则:如果某年能被 4 整除但不能被 100 整除或者该年能被 400 整除,则该年为闰年,否则不是闰年。在本程序运行后,只要从键盘输入年份,通过计算后,就能输出该年份

3、是否为闰年的信息。二、设计方案2.1设计程序流程图否是否是 是闰年计算设计程序流程图 2.2设计说明如图 1 闰年计算程序流程图所示,程序开始运行以后,首先屏幕输出提示语,提示用户输入一个年份。用户输入年份后,程序将输入的字符转换为数值。设计利用乘法的操作,实现字符之间的 10 倍数值转换关系。将年份字符转换成开始输入年份年份除以 4是否整除年份除以 100是否整除除以 400是否整除不是闰年是闰年退出退出继续?继续?数值后,则进行是否是闰年的判断。首先将年份除以 4,若不能整除,则判断为不是闰年,屏幕将输出该年不是闰年的信息,并提示用户是否继续下一个年份的判断,如果用户输入n则表示不需要继续

4、,程序将退出,否则继续下一个年份的判断;若能整除 4,则该年份将继续除以 100,若不能整除,则判断为是闰年,屏幕将输出该年是闰年的信息,并提示用户是否继续下一个年份的判断,若不需要继续,程序将退出,否则继续下一个年份的判断;若能整除100,则该年份将继续除以 400,若能整除,则判断为是闰年,屏幕将输出该年是闰年的信息,并提示用户是否继续下一个年份的判断,若不需要继续,程序将退出,否则继续下一个年份的判断;若不能整除 400,则判断为不是闰年,屏幕将输出该年不是闰年的信息,并提示用户是否继续下一个年份的判断,若不需要继续,程序将退出,否则继续下一个年份的判断。三、软件设计3.1代码段定义:代

5、码段需要定义欲显示的字符串,且字符串以$作为结束标志,还需定义欲输入字符串的缓冲区,缓冲区的第一个字节存放能保存的最大字符数,第二个字节存放实际输入的字符数,用户从键盘输入的字符从第三个字节开始存放,直到用户输入回车键为止。 本设计代码段定义如下:DATAS SEGMENTMAXLEN DB 5ACTLEN DB ?YEAR DB 4 DUP(0)YEARALL DW 0NUM400 DW 400NUM100 DW 100NUM4 DW 4NUMMUL DW 1000,100,10,1MESSAGE1 DB please input the year,13,10,$MESSAGE2 DB th

6、e year is run,13,10,$MESSAGE3 DB the year is ping,13,10,$DATAS ENDS3.2提示语显示:利用 DOS 21H 中断类型 09 号键盘功能调用,在屏幕输出提示用户输入年份的提示。首先,将要显示的字符串放在内存数据区中,本设计提示语显示程序代码如下:MOV AH,09H ;输出MOV DX,OFFSET MESSAGE1INT 21H 3.3字符串输入:利用DOS 21H中断类型的10号键盘功能调用,将从键盘接收的表示年份数值的字符串按字节存储缓冲区。首先,应在内存中建立一个输入缓冲区,如inbuff db 5,?,5 dup(?)。

7、本设计字符串输入程序代码如下: MOV AH,0AH ;字符串输入LEA DX,MAXLENINT 21H3.4数制转换:利用 0-9 这 10 个数的 ASCII 码值比其本身大 30H 的关系,将字符串中的每个字符转换为对应的十进制数值。本设计数制转换程序代码如下:MOV CX,4MOV SI,0MOV DI,0MOV YEARALL,0NEXT:MOV AL,YEARSISUB AL,30HCBWMUL NUMMULDIADD YEARALL,AXINC SIADD DI,2LOOP NEXT3.5是否为闰年的判断:利用判断某年是否为闰年的表达式,输出该年是否为闰年的信息。MOV DX,

8、0MOV AX,YEARALLDIV NUM4CMP DX,0JNZ NOCONTINUE:MOV DX,0MOV AX,YEARALLDIV NUM100CMP DX,0JNZ YESMOV DX,0MOV AX,YEARALLDIV NUM400CMP DX,0JZ YES3.6年份输出显示:利用 DOS 21H 中断类型 09 号键盘功能调用,在屏幕输出提示用户输入年份的提示。本设计年份输出显示程序代码如下:YES:MOV AH,09HMOV DX,OFFSET MESSAGE2INT 21HJMP DONENO:MOV AH,09HMOV DX,OFFSET MESSAGE3INT 2

9、1HJMP DONE 4、设计源程序DATAS SEGMENTMAXLEN DB 5ACTLEN DB ?YEAR DB 4 DUP(0)YEARALL DW 0NUM400 DW 400NUM100 DW 100NUM4 DW 4NUMMUL DW 1000,100,10,1MESSAGE1 DB please input the year,13,10,$MESSAGE2 DB the year is run,13,10,$MESSAGE3 DB the year is ping,13,10,$DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码 STACKS ENDSCOD

10、ES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSMAIN PROC FARSTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DATASMOV DS,AXMOV AH,09H ;输出MOV DX,OFFSET MESSAGE1INT 21HMOV AH,0AH ;字符串输入LEA DX,MAXLENINT 21HMOV CX,4MOV SI,0MOV DI,0MOV YEARALL,0NEXT:MOV AL,YEARSISUB AL,30HCBWMUL NUMMULDIADD YEARALL,AXINC SIADD DI,2LOOP

11、NEXTMOV DX,0MOV AX,YEARALLDIV NUM4CMP DX,0JNZ NOCONTINUE:MOV DX,0MOV AX,YEARALLDIV NUM100CMP DX,0JNZ YESMOV DX,0MOV AX,YEARALLDIV NUM400CMP DX,0JZ YESYES:MOV AH,09HMOV DX,OFFSET MESSAGE2INT 21HJMP DONENO:MOV AH,09HMOV DX,OFFSET MESSAGE3INT 21HJMP DONEDONE:MOV AH,4CHINT 21HMAIN ENDPCODES ENDSEND STAR

12、T五、结论经过这次课程设计,大大地提高了我的分析解决问题的能力,在这一过程中,我根据课程设计题目所给定的总题要求,独立设计、分析和调试程序,在面对问题时,能够耐心思考,解决了很多问题,从中也学到了很多书面上所没有讲明的问题。在运用汇编语言理论知识去解决问题时,也对以前学过的知识点有更深一层的了解。 虽然在设计的过程中遇到了很多问题,但最后通过自己的思考与询问他人,我成功的完成了整体设计要求。经过多次的修改完成了画出了设计流程图。接下来根据流程图完成了程序的编写,程序编完后用了一段时间对程序进行调试。在调试的过程中,遇到了一些问题,刚开始程序并不能很好的运行,经过错误分析与不断修改,最后解决了问

13、题,程序能够正常运行并输出正确的结果。通过本次实验,我对循环语句、分支语句和子程序有了进一步的了解,明确了它们各自的功能及具体的运用情况。在实验中体现出对指令不熟练,因此应该在以后的学习中进一步的学习,编出实现功能更好的,让自己满意的程序来。我通过这次课程设计,深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了自己的学习成果。设计的整个过程,锻炼了我们的思考与运用知识的能力,并且学习到做研究的耐心与专注力,要有一丝不苟的态度,科学不可有半点马虎。这次课程设计,让我学到了很多有用的知识,对我以后的学习有很大的帮助与提高。总之,我在这次课程设计中受益匪浅。 六、参考文献1 余

14、春暄.80x86/Pentium 微机原理及接口技术.北京:机械工程出版社,20082 张荣标.微型计算机原理与接口技术.北京:机械工业出版社,20083 王爽.汇编语言.北京:清华大学出版社,20084 杨季文.80x86 汇编语言程序设计教程.北京:清华大学出版社,2006设计总结:通过这次课程设计,进一步提高了我的分析问题和解决问题的能力。要理论联系实际,理论搞懂了,不会应用还是无济于事。在设计中,确实遇到了不少困难,但经过仔细查阅相关资料和书籍,寻求同学和老师的帮助,最终解决问题。在此,非常感谢同学和老师的耐心的帮助,祝同学们学习进步,祝老师工作顺利。指导教师评语:课程设计成绩: 指导教师签名: 年 月 日

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报