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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

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,若不能整除,则判断为不是闰年,屏幕将输出该年不是闰年的信息,并提示用户是否继续下一个年份的判断,如果用户输入n则表示不需要继续,程序将退出,否则继续下一个年份的判断;若能整除4,则该年份将继续除以100,若不能整除,则判断为是闰年,屏幕将输出该年是闰年

4、的信息,并提示用户是否继续下一个年份的判断,若不需要继续,程序将退出,否则继续下一个年份的判断;若能整除100,则该年份将继续除以400,若能整除,则判断为是闰年,屏幕将输出该年是闰年的信息,并提示用户是否继续下一个年份的判断,若不需要继续,程序将退出,否则继续下一个年份的判断;若不能整除400,则判断为不是闰年,屏幕将输出该年不是闰年的信息,并提示用户是否继续下一个年份的判断,若不需要继续,程序将退出,否则继续下一个年份的判断。三、软件设计3.1代码段定义:代码段需要定义欲显示的字符串,且字符串以$作为结束标志,还需定义欲输入字符串的缓冲区,缓冲区的第一个字节存放能保存的最大字符数,第二个字

5、节存放实际输入的字符数,用户从键盘输入的字符从第三个字节开始存放,直到用户输入回车键为止。 本设计代码段定义如下: DATAS SEGMENT MAXLEN DB 5 ACTLEN DB ? YEAR DB 4 DUP(0) YEARALL DW 0 NUM400 DW 400 NUM100 DW 100 NUM4 DW 4 NUMMUL DW 1000,100,10,1 MESSAGE1 DB please input the year,13,10,$ MESSAGE2 DB the year is run,13,10,$ MESSAGE3 DB the year is ping,13,10

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

7、数制转换:利用0-9这10个数的ASCII码值比其本身大30H的关系,将字符串中的每个字符转换为对应的十进制数值。本设计数制转换程序代码如下: MOV CX,4 MOV SI,0 MOV DI,0 MOV YEARALL,0 NEXT: MOV AL,YEARSI SUB AL,30H CBW MUL NUMMULDI ADD YEARALL,AX INC SI ADD DI,2 LOOP NEXT3.5是否为闰年的判断:利用判断某年是否为闰年的表达式,输出该年是否为闰年的信息。 MOV DX,0 MOV AX,YEARALL DIV NUM4 CMP DX,0 JNZ NOCONTINUE:

8、 MOV DX,0 MOV AX,YEARALL DIV NUM100 CMP DX,0 JNZ YES MOV DX,0 MOV AX,YEARALL DIV NUM400 CMP DX,0 JZ YES3.6年份输出显示:利用DOS 21H中断类型09号键盘功能调用,在屏幕输出提示用户输入年份的提示。本设计年份输出显示程序代码如下: YES: MOV AH,09H MOV DX,OFFSET MESSAGE2 INT 21H JMP DONE NO: MOV AH,09H MOV DX,OFFSET MESSAGE3 INT 21H JMP DONE 4、设计源程序 DATAS SEGME

9、NT MAXLEN DB 5 ACTLEN DB ? YEAR DB 4 DUP(0) YEARALL DW 0 NUM400 DW 400 NUM100 DW 100 NUM4 DW 4 NUMMUL DW 1000,100,10,1 MESSAGE1 DB please input the year,13,10,$ MESSAGE2 DB the year is run,13,10,$ MESSAGE3 DB the year is ping,13,10,$ DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASS

10、UME CS:CODES,DS:DATAS,SS:STACKS MAIN PROC FAR START: PUSH DS SUB AX,AX PUSH AX MOV AX,DATAS MOV DS,AX MOV AH,09H ;输出 MOV DX,OFFSET MESSAGE1 INT 21H MOV AH,0AH ;字符串输入 LEA DX,MAXLEN INT 21H MOV CX,4 MOV SI,0 MOV DI,0 MOV YEARALL,0 NEXT: MOV AL,YEARSI SUB AL,30H CBW MUL NUMMULDI ADD YEARALL,AX INC SI A

11、DD DI,2 LOOP NEXT MOV DX,0 MOV AX,YEARALL DIV NUM4 CMP DX,0 JNZ NO CONTINUE: MOV DX,0 MOV AX,YEARALL DIV NUM100 CMP DX,0 JNZ YES MOV DX,0 MOV AX,YEARALL DIV NUM400 CMP DX,0 JZ YES YES: MOV AH,09H MOV DX,OFFSET MESSAGE2 INT 21H JMP DONE NO: MOV AH,09H MOV DX,OFFSET MESSAGE3 INT 21H JMP DONE DONE: MOV

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

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1