微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx

上传人:b****6 文档编号:8483248 上传时间:2023-05-11 格式:DOCX 页数:11 大小:83.24KB
下载 相关 举报
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第1页
第1页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第2页
第2页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第3页
第3页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第4页
第4页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第5页
第5页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第6页
第6页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第7页
第7页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第8页
第8页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第9页
第9页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第10页
第10页 / 共11页
微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx

《微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。

微机课设基于汇编语言的闰年判断程序设计Word格式文档下载.docx

2.2结构概述·

三软件编程·

5

四程序运行·

10

五收获与心得体会·

11

5.1设计收获·

5.2心得体会·

12参考书目·

12

引言

为了实际提高汇编语言的熟练程度,巩固课堂知识,本次课程设计中,我们将结合实际生活中常常遇到的闰年问题,运用MF2KI软件来编写如何判断闰年的程序。

为了实现对输入年份是否为闰年的判断,所设计的程序需要完成的功能主要有:

1、在屏幕上显示提示信息,输入年份;

2、判断输入格式是否正确;

3、判断输入的年份是否为闰年。

判断某年为闰年的汇编语言表达式为:

(((AX)MOD4EQ0)AND((AX)MOD100EQ0))OR((AX)MOD400EQ0)其中,(AX)中存放的是从键盘输入的年份值。

程序编写完成之后,会经过编译、连接、调试等过程,程序运行后,屏幕会提示输入年份,输入后程序会自动判断输入的年份是否为闰年。

一、设计任务

1.1设计任务

根据提示输入任意年份,编写判断闰年的程序,如果是闰年则在屏幕上现实“Y”,否则现实“N”。

1.2设计目的

1、学习分支、中断和逻辑表达,寄存器的运用和子程序的调用;

2、熟悉汇编语言程序的编译、运行过程;

3、了解汇编语言编写的各个流程

4、将课堂上所学的知识学以致用,通过程序的制作过程学习课外的新知识,并加强加深对旧知识的理解与掌握。

二、设计方案

2.1设计分析

闰年的判断是一个非常经典的问题,在学习各种语言时都会遇到。

解决该问题的关键是找到判断某年是否为闰年的方法。

要判断某一年是否为闰年,需判断该年份的数值正整数是否满足以下两个条件中的任意一个:

能够被4整除,但不能够被100整除;

能够被4整除,同时又能够被400整除。

2.2结构概述

主模块:

显示提示输入年份以及输入的字符内容,和最后输出的判断。

子模块:

判断输入:

该模块是对输入的年份的格式的判断,若是错误则显示错误并显示输入提示,正确则进行下面的操作。

字符串转换格式:

将数字字符串转换成数字,以进行下面的程序操作。

判断闰年:

判断输入的年份是否为闰年,若是则输出“xxxxisaleapyear!

”,若不是则输出“xxxxisnotaleapyear!

”,然后退出程序。

根据以上结构,可画出以下程序流程图

图2-1判断闰年流程图

本框图列出了此次课程设计的总流程,显示信息,输入数据,判断格式,判断闰年和结束程序。

较为直观地显示了设计的顺序结构,循环结构及分支结构。

三、软件编程

根据图2-1利用DOS21H中断类型的10号键盘功能调用,将键盘接受到的年份数值的字符串按字节存入缓冲区。

将字符串中的每个字符转换为对应的十进制数值(利用0-9这10个数的ASCⅡ码值比其本身大30H的关系),利用判断某年是否为闰年的表达式,输入该年是否为闰年的信息。

主要程序代码如下:

datasegment

inbuffdb5,?

5dup(?

promptdb'

Pleaseinputtheyear:

'

'

$'

errmsgdb'

Inputillegal!

yesdb'

isleapyear'

nodb'

isnotleapyear'

messdb'

Continue?

(y/n):

newlinedb13,10,'

回车换行

dataends

codesegment

mainprocfar

assumecs:

code,ds:

data

start:

pushds

subax,ax

pushax

movax,data

movds,ax

lop0:

callinput

calljudge

leadx,mess

movah,09h

int21h;

是否继续输入年份的判断

movah,01h

int21h

cmpal,'

n'

jeexit

continue:

leadx,newline

jmplop0

exit:

ret

mainendp

输入一个具体的年份,并转换成10进制

返回:

(ax)=输入的年份

inputprocnear

pushbx

pushcx

pushdx

s1:

leadx,prompt

提示输出

leadx,inbuff

movah,0ah

键盘输入

movdl,byteptrinbuff[1];

把有效地址为inbuff的字节送给dl

cmpdl,4;

输入的值判断是否为4位数

jneerror;

调用输入不合条件时的错误处理

movcx,4

leabx,inbuff

addbx,2

movax,0

movdx,0

lop1:

检查输入有效性

movdl,10

muldl

movdl,byteptr[bx]

subdl,30h;

将字符转化为数值

cmpdl,0

jberror

cmpdl,9

jaerror

addax,dx

incbx,bx+1;

循环体中字符在字符串中的位置

looplop1

jmps2

error:

错误处理

leadx,errmsg

jmps1

s2:

movcx,ax

movax,cx

popdx

popcx

popbx;

现场恢复

inputendp

判断一个年份是否闰年

输入:

(ax)=年份

judgeprocnear

pushax;

保存ax;

输出要判断的年份

lop2:

movah,02h

incbx

looplop2;

循环输出年份正确时结果中的年份

lop3:

popax

movcx,ax;

保存ax到cx中

movbx,4;

判断是否能被4整除

divbx

cmpdx,0

jnenotleap

movbx,100;

判断是否能被100整除

jneisleap

movbx,400;

判断是否能被400整除

jnenotleap

isleap:

leadx,yes

jmps3

notleap:

leadx,no

s3:

leadx,newline;

换行

输出年份正确时结果的剩余部分

popbx

judgeendp

codeends

endstart

四、程序运行

在软件中调试后,运行上面的程序,会出现初始界面。

初始界面如图4-1所示:

图4-1初始界面

在初始界面的光标处,输入2003,回车换行,则显示2003isnotleapyear;

并给出是否继续的提示,输入y,屏幕继续显示提示输入的语句;

如果输入错误,则显示Inputillegal!

并提示用户继续输入年份,直到输入正确的年份为止;

输入2000,回车换行,则显示2000isleapyear;

并给出是否继续的提示,输入n,则显示屏幕关闭,程序结束。

运行结果如图4-2所示:

图4-2运行结果

五、收获与心得体会

5.1设计收获

两周的课程设计结束了,本次的课程设计中,我不但对课本上的知识有了更深的了解和巩固,而且还学到了平时在课堂上学不到的东西。

短暂的时间里,我学到了不少知识,熟悉了很多程序代码,也认识到了自己有许多不足之处。

已掌握的知识也不牢固,遇到一些棘手的问题无法自己解决,但是,我通过询问同学,查询资料,最终使问题得以解决。

由此,我深刻体会到,只有在实际编程时我们才能认识到自己的不足之处,才能进而进行弥补来使自己的水平有所提高。

这次课程设计使我对计算机系统汇编有了更加完整的认识:

汇编语言主要是研究软件到硬件的程序设计问题,它是计算机能够提供给用户使用的最快而且最有效的语言,也是能够利用计算机所有硬件特性并直接控制硬件的唯一语言。

通过查阅资料我拓宽了自己的知识面,增强了学好汇编语言的信心。

这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写了很多小程序。

但这次是一个综合的程序,平时的很多程序都用到了。

子程序的设计是固定的,因此可以直接从指导资料中调用,大多只需要修改几个参数就可以,这大大方便了我们的设计,为我们节省了很多的时间。

不可否认,本程序存在不少缺点和不足,但通过这次课程设计的却找出了自己在学习上的不足,对以后的学习和工作也有指导作用。

我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!

5.2心得体会

课程设计是我们专业课程知识综合应用的实践训练,也是我们迈向社会,从事职业工作前一个必不少的过程。

”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。

我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。

实验过程中我们遇到的许多问题仅依靠自己掌握的一些知识是远不能解决的,因此我们发挥团队精神,彼此协作,互相帮助,以集思广益的方式解决了许多问题。

大家在实验遇到瓶颈问题时都不曾气馁沮丧,而是翻课本查资料,各尽其能,以求最大限度的解决问题。

遇到问题时我们相互提醒相互借鉴,有效地解决了许多问题。

大家这种精诚合作的精神使我非常感动。

实验设计过程中,老师给我们的指导尤为重要,否则我们的实验可能不会顺利完成,而我们在本次试验中所付出的努力极有可能白白浪费掉。

在此,我衷心感谢这一学期以来兢兢业业,不辞劳苦为我们教授知识的张老师,老师严谨细致、一丝不苟的作风一直是我们工作、学习中的榜样。

同时也很感谢本次试验中给予我帮助的各位同学!

参考书目

[1]李敬兆,8086/8088和arm核汇编语言程序设计中国科技大学出版社,2008

[2]张光长,汇编语言程序设计:

北京大学出版社,2009.7

[3]陈够喜等著,微机原理应用实验教程.北京:

人民邮电出版社,2006

[4]刘乐善,微型计算机接口技术及应用.武汉:

华中科技大学出版社,2004

[5]沈美明,温冬婵编著IBM—PC汇编语言程序设计(第二版)清华大学出版社

[6]张开成,微型计算机原理,西南师范大学出版社,2006.8

[7]谭硫安张雪兰,windows汇编语言程序设计教程:

电子工业大学出版社,2005.4

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2