汇编语言设计报告张尹.docx

上传人:b****4 文档编号:3760619 上传时间:2022-11-25 格式:DOCX 页数:10 大小:130.06KB
下载 相关 举报
汇编语言设计报告张尹.docx_第1页
第1页 / 共10页
汇编语言设计报告张尹.docx_第2页
第2页 / 共10页
汇编语言设计报告张尹.docx_第3页
第3页 / 共10页
汇编语言设计报告张尹.docx_第4页
第4页 / 共10页
汇编语言设计报告张尹.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

汇编语言设计报告张尹.docx

《汇编语言设计报告张尹.docx》由会员分享,可在线阅读,更多相关《汇编语言设计报告张尹.docx(10页珍藏版)》请在冰豆网上搜索。

汇编语言设计报告张尹.docx

汇编语言设计报告张尹

《汇编语言程序设计》

课程设计报告

题目:

判断闰年

院系:

信息工程系

专业班级:

电子信息工程技术1001班

学号:

201003030112

学生姓名:

张尹

指导教师:

唐启见

 

2011年12月27日

湖南软件职业学院课程设计任务书

信息工程系电子教研室

学号

201003030112

学生姓名

张尹

专业(班级)

电子信息工程技术1001班

题目一:

判断闰年√

题目二:

进制转换

题目三:

代码转换程序

题目四:

四则运算程序

题目五:

学生成绩管理

题目六:

打字练习(注:

请在自己选做的题目后打√)

1.熟悉汇编指令、宏汇编语言的编程方法

2.BIOS中断调用、系统功能中断调用方法

3.磁盘文件、及文件内容操作

题目的选择是根据汇编语言的特点主要针对系统内部的一些中断调用、系统功能调用、系统数据处理、文件数据处理而设计的,是对所学课程知识较为系统的应用。

由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。

不要局限于题目所规定的要求,可以灵活裁减,设计出功能更完善的程序。

另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设计的题目。

1.完成所选题目的软件设计;

2.课程设计1000字(不包括程序源代码)左右。

第1次熟悉软件环境。

第2次绘制程序流程图。

第3次用编写程序。

第4次用调试运行程序。

第5次编写课程设计说明书

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

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

3.沈美明,温冬婵,张赤红编著IBM—PC汇编语言程序设计实验教程清华大学出版社出版

指导教师签字

唐启见

教研室主任签字

李建

2011年12月25日

湖南软件职业学院课程设计成绩评定表

指导教师评语:

 

成绩:

指导教师:

年月日

摘要

本程序是基于汇编语言编写的简单的判断闰年的程序,此程序简单便捷易于应用,可应用到日常生活中闰年的判断,也可用在万年历的制作中。

在运行后,屏幕会提示输入年份,输入后程序会自动判断输入的年份是否为闰年。

根据闰年的计算方法:

如果某年能被4整除但不能被100整除或者该年能被400整除,则该年为闰年。

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

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

在本程序运行后,只要输入年份就能判断是否为闰年,在结果输出后对于用户选择是否继续程序。

完成的主要功能1、在屏幕上显示提示信息,输入年份。

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

3、判断完后返回。

 

关键词:

闰年,判断输入,重复输入

目录

1设计目的1

2概要设计2

2.1系统总体分析2

2.2主模块框图及说明3

3详细设计4

3.1主模块及子模块说明4

3.2各模块详细设计4

4.程序调试8

4.1运行界面分析8

4.2算法的分析9

5心得体会10

5.1设计体会10

5.2系统改进10

参考文献11

1设计目的

1、学会子程序的运用,了解子程序的功能:

子程序是具有固定功能的程序段,并且有规定的格式。

不同的计算机语言对子程序格式的规定不同,汇编语言的子程序基本格式如下:

子程序名PROC类型

指令序列

子程序名ENDP

2、学习分支、中断和逻辑表达等的应用,其中分支的基本模式:

设置标志位的指令

条件跳转指令标号

需要完成的操作

标号:

后续指令

3、本次课程设计的目的主要是将课堂上所学的知识学以致用,通过程序的制作过程学习课外的新知识,并加强加深对旧知识的理解与掌握。

2概要设计

 

2.1系统总体分析

总的来说本程序是运用汇编语言编写的简单的判断闰年的小程序。

具体算法为如果该年份的数值正整数若能被100整除,又能被400整除,或者不能被100整除,却能被4整除,则该数值代表的年份为闰年。

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

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

完成的主要功能1、在屏幕上显示提示信息,输入年份。

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

3、判断完后返回。

 

2.2主模块框图及说明

主模块框图如图2-2

图2-2主模块的逻辑图

3详细设计

3.1主模块及子模块说明

主模块:

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

子模块:

①判断输入;该模块主要是对输入年份格式的一种判断,若输入错误则无法继续,若输入正确则跳入下一个指令。

②根据闰年的定义判断输入的十进制数表示的年份是否是闰年。

在程序中它包括多个不同功能的子模块,即判断年份能否被4整除或能否被100整除的模块等

③此模块是判断输入的年份是否为闰年,若是则输出“Thisisaleapyear!

”,若不是则输出“Thisisnotaleapyear!

”,然后退出。

3.2各模块详细设计

datasegment

buf1db'pleaseinputayear!

$'

buf2db5,6dup(0)

buf3db'thisyearisalaupyear!

$'

buf4db'thisyearisnotalaupyear!

$'

dataends

stksegmentstack

dw64dup(0)

stkends

codesegment

assumecs:

code,ds:

data,ss:

stk

crprocnear

movah,2

movdl,13;回车符的ASCⅡ码值

int21h

movdl,10;换行符的ASCⅡ码值

int21h;输出回车符是已把AH放2,且调用后未变

ret

crendp

judprocnear

pushbx

pushcx

pushdx

movcx,ax;临时保存年份值

movdx,0

movbx,4

divbx;除以4,为预防溢出,用双字除以字

cmpdx,0

jnzlab1;不能4整除则不是闰年,转lab1

movax,cx;取回年份值

movbx,100

divbx;除以100

cmpdx,0

jnzlab2;能被4整除但不能被100整除则是闰年,转lab2

movax,cx

movbx,400

divbX;除以400

cmpdX,0

jzlab2;把cf清0表示非闰年,设置出口参数

lab1:

clc

jmplab3

lab2:

stc;把cf清1表示是闰年,设置出口参数

lab3:

POPdx

POPcX

POPbx

ret

judendp

exchangeprocnear

moval,[buf2+2]

subal,30h

movbl,10h

mulbl

sub[buf2+3],30h

addal,[buf2+3]

movah,al

moval,[buf2+4]

subal,30h

mulbl

sub[buf2+5],30h

addal,[buf2+5]

ret

exchangeendp

main:

movax,data

movds,ax

leadx,buf1

movah,9

int21h

callcr

leadx,buf2

movah,10

int21h

callcr

callexchange

calljud

jnclab4

leadx,buf3

jmplab5

lab4:

leadx,buf4

lab5:

movah,9

int21h

movah,4ch

int21h

codeends

endmain

4.程序调试

4.1运行界面分析

运行程序得如图4-1主界面

图4-1主界面

输入一个年份得如图4-2缓存界面

图4-2缓存界面

回车显示如图4-3判断结果界面

(1)

图4-3判断结果界面

(1)

回车显示如图4-3判断结果界面

(2)

图4-3判断结果界面

(2)

4.2算法的分析

本程序主要是将各个子模块组合起来完成一个目标及判断闰年。

通过主程序的调集子程序,将各个子程序的功能整合起来,完成实验目的。

5心得体会

5.1设计体会

一天半的汇编语言课程设计结束了,虽然很仓促,但我的感触很深,收获也较为丰富。

通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。

通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是循环指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。

在整个程序的编写中,调试占了很大部分的时间。

要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这是非常重要的。

实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编写的能力!

5.2系统改进

此程序的全面性不够,在年份过程中,当输入被判断的年份时,如果数值是整数的则能够正确的处理,当不是整数的时候都输出的都是非闰年。

应该可以将其改进一个判断格式。

 

参考文献

[1]李敬兆.《8086/8088和arm核汇编语言程序设计》.合肥:

中国科技大学出版社

[2]沈美明,温冬婵编著.《IBM—PC汇编语言程序设计(第二版)》.北京:

清华大学出版社出版

[3]沈美明,温冬婵,张赤红编著.《IBM—PC汇编语言程序设计实验教程》.北京:

清华大学出版社出版

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

当前位置:首页 > 求职职场 > 简历

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

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