为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

汇编判断闰年课程设计报告

2017-09-25 11页 doc 37KB 17阅读

用户头像

is_624976

暂无简介

举报
汇编判断闰年课程设计报告汇编判断闰年课程设计报告 福建农林大学计算机与信息学院信 息工程类 课程设计报告 汇编语言 课程名称: 判断闰年程序 课程设计题目: 姓 名: 计算机与信息学院 学院: 电子信息工程 专 业: 年 级: 学 号: 指导教师: 詹仕华 职 称: 副教授 2014年6月30日 福建农林大学计算机与信息学院信息工程类 课程设计结果评定 评 定 项 目 评分成绩 1(选题合理、目的明确(10分) 2(设计方案正确,具有可行性、创新性(20分) 3(设计结果(例如:硬件成果、软件程序)(20分) 4(...
汇编判断闰年课程设计报告
汇编判断闰年课程设计报告 福建农林大学计算机与信息学院信 息类 课程设计报告 汇编语言 课程名称: 判断闰年程序 课程设计目: 姓 名: 计算机与信息学院 学院: 电子信息工程 专 业: 年 级: 学 号: 指导教师: 詹仕华 职 称: 副教授 2014年6月30日 福建农林大学计算机与信息学院信息工程类 课程设计结果评定 评 定 项 目 评分成绩 1(选题合理、目的明确(10分) 2(设计正确,具有可行性、创新性(20分) 3(设计结果(例如:硬件成果、软件程序)(20分) 4(态度认真、学习刻苦、遵守纪律(15分) 5(设计报告的化、参考文献充分(不少于5篇)(10分) 6(答辩(25分) 总分 指导教师签字: 评定日期: 目录 1 设计思想 .......................................................................................................... 5 2 概要设计 .......................................................................................................... 5 2.1 系统总体分析 ............................................................................................................................ 5 2.2 主模块框图及 ................................................................................................................... 5 3 详细设计 .......................................................................................................... 6 3.1 主模块及子模块说明 .............................................................................................................. 6 3.2 各模块详细设计........................................................................................................................ 6 4 程序调试 .........................................................................................................10 4.1 运行界面分析 .......................................................................................................................... 10 4.2 算法的分析 ............................................................................................................................... 10 4.3 调试过程及分析...................................................................................................................... 10 5 心得体会 ......................................................................................................... 11 5.1 设计体会 ................................................................................................................................... 11 5.2 系统改进 ................................................................................................................................... 11 6 参考文献..................................................................................................................................... 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 除以100能否整 Y 输出格式错误 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,cx[di] 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 ax,cx mov 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 dx lab3: pop 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] 陈够喜等著,微机原理应用实验教程. 北京:人民邮电出版社 [3] 刘全忠,汇编语言实用程序.天津:天津大学出版社 [4] 刘乐善,微型计算机接口技术及应用.武汉:华中科技大学出版社 [5] 谭硫安 张雪兰windows汇编语言程序设计教程:电子工业大学出版社 [6] 张光长,汇编言程序设计:北京大学出版社 沈美明,温冬婵 编著IBM—PC汇编语言程序设计(第二版)清华大学出版社 [7]
/
本文档为【汇编判断闰年课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索