汇编判断闰年课程设计报告.doc_第1页
汇编判断闰年课程设计报告.doc_第2页
汇编判断闰年课程设计报告.doc_第3页
汇编判断闰年课程设计报告.doc_第4页
汇编判断闰年课程设计报告.doc_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

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

文档简介

福建农林大学计算机与信息学院信息工程类课程设计报告课程名称:汇编语言课程设计题目: 判断闰年程序姓 名: 学院:计算机与信息学院专 业:电子信息工程年 级:学 号:指导教师:詹仕华职 称:副教授2014年6月30日福建农林大学计算机与信息学院信息工程类课程设计结果评定评 定 项 目评分成绩1选题合理、目的明确(10分)2设计方案正确,具有可行性、创新性(20分)3设计结果(例如:硬件成果、软件程序)(20分)4态度认真、学习刻苦、遵守纪律(15分) 5设计报告的规范化、参考文献充分(不少于5篇)(10分)6答辩(25分)总分指导教师签字: 评定日期:目录1 设计思想52 概要设计52.1 系统总体分析52.2 主模块框图及说明53 详细设计63.1 主模块及子模块说明63.2 各模块详细设计64 程序调试104.1 运行界面分析104.2 算法的分析104.3 调试过程及分析105 心得体会115.1 设计体会115.2 系统改进116 参考文献.1 设计思想本次课程设计是关于判断闰年的程序,既输入具体的年份,输出本年是否为闰年的提示信息,然后退出此程序。 本次课程设计的目的主要是将课堂上所学的知识学以致用,通过程序的制作过程学习课外的新知识,并加强加深对旧知识的理解与掌握。2 概要设计2.1 系统总体分析总体设计思想本程序是用汇编语言编写的简单的判断闰年的小程序。在运行后,屏幕会提示输入年份,输入后程序会自动判断输入的年份是否为闰年。判断某年为闰年的汇编语言表达式为:(AX) MOD 4 EQ 0) AND (AX) MOD 100 EQ 0) OR (AX) MOD 400 EQ 0)其中,(AX)中存放的是从键盘输入的年份值。在本程序运行后,只要输入年份就能判断是否为闰年。完成的主要功能:1、在屏幕上显示提示信息,输入年份。2、判断输入的年份是否为闰年。3、判断完后返回。 2.2主模块框图及说明开 始显示提示信息将年份数值转换为十六进制数字N判断是否为数字 除以4能否整除Y Y除以100能否整N 输出格式错误N 除以400能否整除Y显示是闰年 显示不是闰年结束主模块框图如图2-1本框图列出了此次课程设计的总流程,显示信息,输入数据,判断格式,判断闰年和结束程序。客观显示了设计的顺序结构,循环结构及分支结构。3、详细设计3.1 主模块及子模块说明字符串转换格式模块:此模块是将数字字符串转换成数字,以便进行下面的模块。判断闰年模块:此模块是判断输入的年份是否为闰年,若是则输出“This is a leap year!”,若不是则输出“This is not a leap year!”,然后退出。3.2 各模块详细设计data segment ;定义数据段 infon db 0dh,0ah,Please input a year: $ Y db 0dh,0ah,This is a leap year! $ N db 0dh,0ah,This is not a leap year! $ w dw 0 buf db 8 db ? db 8 dup(?) data ends stack segment stack db 200 dup(0) stack ends code segment assume ds:data,ss:stack,cs:code start:mov ax,data mov ds,ax lea dx,infon ;在屏幕上显示提示信息 mov ah,9 int 21h lea dx,buf ;从键盘输入年份字符串 mov ah,10 int 21h mov cl, buf+1 lea di,buf+2 call datacate call ifyears jc a1 lea dx,n mov ah,9 int 21h jmp exit a1: lea dx,y mov ah,9 int 21h exit: mov ah,4ch int 21h datacate proc near push cx; dec cx lea si,buf+2 tt1: inc si loop tt1 ;lea si,cxdi pop cx mov dh,30h mov bl,10 mov ax,1 l1: push ax sub byte ptr si,dh mul byte ptr si add w,ax pop ax mul bl dec si loop l1 ret datacate endp ifyears proc near push bx push cx push dx mov ax,w mov cx,ax mov dx,0 mov bx,4 div bx cmp dx,0 jnz lab1 mov ax,cx mov bx,100 div bx cmp dx,0 jnz lab2 mov ax,cx mov bx,400 div bx cmp dx,0 jz lab2 lab1: clc jmp lab3 lab2: stc lab3: pop dx pop cx pop bx ret ifyears endp code ends end start 4 程序调试4.1 运行界面分析初始界面:如图4-1图4-1按照提示输入年份如2012按回车执行程序,界面如图4-2图4-2显示“This is a leap year!”若不是闰年则显示,如图4-3图4-3若输入错误则显示如图4-4图4-4最后按提示输入“q”退出本程序。4.2算法的分析 本程序主要是将各个模块组合来完成一个目标及判断闰年。通过主程序的调集子程序,将各个子程序的功能整合起来,完成实验目的。4.3 调试过程及分析 (1)此程序中队buf的地址地存放了解不够,它是从第二位开始的,在编译过程中,使显示总是错误。(2)本程序用了很多的跳转,如:jz、jg、jl等,使用时要注意防止它们跳转的格式,使用范围,如:jg、jl它们是带符号位比较转移指令。5 心得体会5.1 设计体会将近一周的课程设计,使我了解了汇编语言的基本的编程,虽然这次设计的只是一个小程序,但是这其间我还是学到了不少东西。在这次课程设计的过程,我得到来自老师以及同学们的帮助和鼓励,致使最后圆满完成预期任务。在设计过程中在做这个课程设计过程中,我深深感受到自己所掌握知识还是不足,已掌握也不牢固是遇到的一些棘手的问题不能解决,比如,buf地址的移动,年份的字符串转换为数值,判断闰年的语法实现等问题,但是,我通过询问同学,以及查询资料最终获得了解决,由此我们深刻体会到,只有在实际编程我们才能认识到自己的不足,才能进而进行弥补来使自己的编程水平有所提高。这次课程设计也加深了对汇编语言这门课的认识,汇编语言课程主要是研究软件到硬件的程序设计问题,它是计算机能够提供给用户使用的最快而又最有效的用语言,也是能够利用计算机所有硬件特性并直接控制硬件的唯一语言。并且通过本次课程设计,我的思维能力、综合应用能力和专业素质得到提高。本程序虽然已经完成了课程设计的需求,但是就应用上来说还是不完整的。由于时间仓促,故只提出一些改进的思想。最后,感谢老师,以及同学们对我的帮助。5.2 系统改进由于时间比较紧,对程序的设计还不够完美,只是设计出了程序的大体功能。对于界面还有待继续设计。在以后完善程序的过程中,可以加上运行一次程序多次判断闰年等功能,此功能可通过利用选择语句来判断程序是否继续执行跳转来重新进行本程序,并且系统还有很多地方需要去改善,使其更为简洁易懂。六、应收集的资料及主要参考文献1王爽.汇编语言(第2版).北京:清华大学出版社2陈够喜

温馨提示

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

评论

0/150

提交评论