微机 闰年判断程序设计_第1页
微机 闰年判断程序设计_第2页
微机 闰年判断程序设计_第3页
微机 闰年判断程序设计_第4页
微机 闰年判断程序设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学 号: 微机原理及接口技术课程设计题 目 闰年判断程序设计学 院 自动化学院专 业 电气工程及其自动化班 级姓 名指导教师2015 年 12 月 18 日武汉理工大学微机原理与接口技术课程设计说明书课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 自动化学院 题 目: 闰年判断程序设计 初始条件:该程序实现通过键盘输入一年份,然后判断该年份是否为闰年,如果是闰年,则在屏幕上显示:该年是闰年。如果不是,则显示:该年不是闰年。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1) 设计任务及要求分析(2) 方案比较及认证说明(3) 系统原理阐述(4) 硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明(5) 软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6) 调试记录及结果分析(7) 总结(8) 参考资料(9) 附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图武汉理工大学微机原理与接口技术课程设计说明书0目录摘要 .11.设计任务及要求分析 .21.1 课程设计的目的 .21.2 闰年判断程序设计 .22.方案比较及认证说明 .32.1 方案比较 .32.1.1 采用汇编语言设计 .32.1.2 采用 C 语言设计 .32.2 方案论证 .33.系统原理阐述 .43.1 软件思想 .43.2 程序设计原理 .43.3 程序设计流程图 .43.4 汇编源程序 .53.4.1 主模块程序 .53.4.2 子模块程序设计 .54.调试记录及结果分析 .74.1 运行界面记录 .74.2 算法分析 .84.3 调试过程及结果分析 .8心得体会 .9参考文献 .10附录 .11武汉理工大学微机原理与接口技术课程设计说明书0摘要本次微机原理与接口技术课程设计是要设计一个判断年份是否为闰年的显示程序。本次课程设计用的是 8086 最小系统,在 emu8086 汇编集成环境下完成。首先,根据课设题目要求进行分析,并选择适合要求的方案,在选定方案下设计整个设计要求的程序框架,画出流程框图,然后运用模块化的设计思想,将题设要求分成几个小的模块,一段一段的设计程序。再分段对程序进行编写和调试,在编写程序时,每个版块都使用了分支语句,并在主程序中多次使用,同时主程序中还多次使用分支语句。最后,完成各个板块的的设计之后,在分别进行调试和最终调试,并进行错误修改,对整体进行完善。关键词:汇编语言;闰年判断;EMU8086武汉理工大学微机原理与接口技术课程设计说明书1闰年判断程序设计1.设计任务及要求分析1.1 课程设计的目的(1)使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。(2)培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。1.2 闰年判断程序设计 初始条件:该程序实现通过键盘输入一年份,然后判断该年份是否为闰年,如果是闰年,则在屏幕上显示:该年是闰年。如果不是,则显示:该年不是闰年,如果输入的是非法字符,则显示错误,重新输入。从上述要求分析,本次设计要使用多次循环语句和分支语句,循环语句用来将字符串转换成十六进制数字,表示年份,分支语句在进行计算后判断余数是否为零从而判断输入年份是否为闰年。所以对本次设计使用模块化思想,用子程序完成字符转换功能,主程序完成闰年判断并显示功能。武汉理工大学微机原理与接口技术课程设计说明书22.方案比较及认证说明2.1 方案比较程序要求实现通过键盘输入一年份,然后判断该年份是否为闰年,如果是闰年,则在屏幕上显示:该年是闰年。如果不是,则显示:该年不是闰年。2.1.1 采用汇编语言设计方案一:采用汇编语言,使用软件 EMU8086 设计。将输入年份保存到 AX 中,然后判断(AX )MOD 4 EQU O)AND(AX) MOD 100 EQU 0)OR(AX)MOD 400 EQU 0),通过分支语句,若满足上述条件则输出 “该年为闰年”,否则输出“该年不为闰年”。2.1.2 采用 C 语言设计方案二:采用机器编程语言,使用软件 C+设计。将输入年份复制给 X,然后通过语句((X%4=0?)AND(X%100=0?)OR(X%400=0?)判断输入年份是否为闰年。满足条件将输出“该年为闰年”,否则输出“该年不为闰年”。2.2 方案论证方案一采用的是汇编语言,汇编语言直接描述机器指令,比机器指令容易记忆和理解,而且可以通过调试观察数据在内存中的存储状态,将软件与硬件相结合。汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和 CPU 里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言 而 C 语言是高级语言 ,可以实现跨平台。编写程序无需指定 CPU 的指令执行情况,一段程序可以在不同体系结构的计算机上使用。C 语言的使用范围更为广阔,但在初学计算机语言时,使用汇编语言可以更容易理解软件与硬件之间的联系,了解算法执行的过程,故在本次设计中采用方案一进行设计,而且程序简单,可使用单步调试,逐步分析每一句程序的运行过程。武汉理工大学微机原理与接口技术课程设计说明书3武汉理工大学微机原理与接口技术课程设计说明书43.系统原理阐述3.1 软件思想EMU8086 是 Digital River 公司推出的一款较为先进的 16 位 PC 仿真软件,他将汇编语言程序设计和虚拟接口技术有机的结合起来,它内部集成了汇编语言的源程序的编译器和连接器,并提供一些参考例程,带有学习指南,还提供诸如交通灯、异步电机等一系列虚拟外设,是学习 Inter 8086/8088 微处理器的工作原理和进行汇编语言设计的较为理想的工具。其操作界面简单直观,有菜单栏、快捷按钮。通过他们可以方便观察到处理器执行指令的各个步骤,其中的单步调试(single step)功能能显示指令执行后 CPU 内部存储器、堆栈区、变亮和标志寄存器的当前值。这个模拟器是在一台“虚拟”的电脑上运行程序的,他拥有自己独立的“硬件”,这样程序就如同诸如硬盘与内存这样的实际硬件完全隔离,动态调试非常方便。8086 机器代码同 Inter 下一代处理器完全兼容,这意味着 8086 代码具有非常广泛的运用范围,另一特点是他的指令集非常小,学起来方便,同主流汇编程序相较,其语法简单得多,但是他能生成任何兼容8086 机器语言的代码。3.2 程序设计原理总体程序设计原理是由汇编语言编写的判断年份是否为闰年的小程序。在运行程序后,屏幕会先提示输入一个年份,操作者输入年份后系统会自动判断该年是否为闰年,判断的语句为:(AX )MOD 4 EQU O)AND(AX) MOD 100 EQU 0)OR(AX)MOD 400 EQU 0)。AX 为累加器,其中存放的是操作者输入的年份。程序完成的主要功能有:1.提示操作者输入一个年份 2.判断年份是否闰年3.输出该年份是否为闰年。3.3 程序设计流程图闰年判断流程图见图 3-1-1。武汉理工大学微机原理与接口技术课程设计说明书5图 3-3-1 程序框图3.4 汇编源程序3.4.1 主模块程序主模块:显示提示输入年份以及输入的字符内容,和最后输出的判断是否为闰年。 3.4.2 子模块程序设计子模块:判断输入:该模块是对输入的年份的格式的判断,若是错误则显示错误 Error,正确则进行下面的操作。字符串转换格式:将数字字符串转换成数字,以便进行下面的程序操作。判断闰年:判断输入的年份是否为闰年,若是则输出“This is a leap year!”,若不是则输出 “This is not a leap year!”,然后退出。ifyears proc near ;此子程序用来判断年份是否为闰年push bxpush cxpush dxmov ax,w ;把转换后的年份的数值存入 AXmov cx,ax mov dx,0 ;将 dx 清零mov bx,4 ;把 4 存放到寄存器 bx 中(除数)武汉理工大学微机原理与接口技术课程设计说明书6div bx ;除法指令cmp dx,0 ;将 dx 中的余数与 0 进行比较,看似否整除jnz lab1 ;若不相等跳转mov ax,cx ;判断年份是否位 400 的整数倍mov bx,100 ;将 100 赋给 bx 寄存器,做 div 的源操作数mov dx,0div bxcmp dx,0 ;将 dx 中的余数与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论