资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
* 实践教学实践教学*兰州理工大学兰州理工大学2010 年春季学期微型计算机原理及应用微型计算机原理及应用课程设计课程设计题题 目:目:闰年计算闰年计算 专业班级:专业班级:* 姓姓 名:名:* 学学 号:号: 指导教师:指导教师: 成成 绩:绩:_目目 录录一、一、摘摘 要要.1二、二、前前 言言.2三、三、正正 文文.31.设计目的.32.设计内容.33.问题描述.34.设计思路.35.设计方案.4四、四、设设 计计 总总 结结.6五、五、参考文献参考文献.7六、六、致致 谢谢.8七、七、附件附件 程序代码程序代码.90一、摘一、摘 要要汇编语言是微机原理和接口设计的基础,微机主机和接口所要实现的功能都要通过汇编语言来实现。尽管汇编语言设计程序有编程效率低的缺点,但其运行效率高,速度快,并且特别适合很多特殊应用的场合,如加密解密、病毒分析和防治、软件破解等。这些在应用方面的优点是其他语言不可比拟的,面对硬件的直接控制更是其特长。因此,在很多高级语言(如 C+)中都可嵌入用汇编语言编写的程序段,以实现优势互补,发挥各自的长处。1二、前二、前 言言随着计算机技术的飞速发展,计算机改变了世界,也改变了人类的生活。作 为现代科学技术的主流,新世纪的大学生,应当站在时代发展的前列,掌握现代 科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。本课 设就是以闰年计算为题材,让我们掌握汇编语言和微机原理和接口的关系。2三、正三、正 文文1. 设计目的设计目的 1、学习分支、中断和逻辑表达;2、熟悉汇编语言程序的编译、链接过程;2. 设计内容设计内容 1、从键盘输入年份,通过计算后,输出该年份是否为闰年的信息;3. 问题描述问题描述 汇编语言是微型计算机原理及应用的基础,微机主机和接口所要实现的功能都要通过汇编语言来实现。尽管汇编语言程序设计编程效率低,但其运行效率高、速度快。因此掌握汇编语言是学好微机原理和接口设计的第一步。闰年计算是一个非常经典的问题,在学习各种语言时都会遇到这个问题,用来判断某年是否为闰年。4. 设计思路设计思路 利用 DOS 21H 中断类型的 10 号键盘功能调用,将从键盘接收的表示年份数值的字符串按字节存入缓冲区。将字符串中的每个字符转换为对应的十进制数值(利用 0-9 这 10 个数的 ASCII 码值比其本身大 30H 的关系) ,利用判断某年是否为闰年的表达式,输出该年是否为闰年的信息。解决本问题的关键是找到判断某年时否为闰年的方法。要判别某一年 year 是否闰年。闰年的条件是符合下面二者之一:能被 4 整除,但不能被 100 整除;3能被 4 整除,又能被 400 整除。本设计中,我们利用 DOS 21H 中断类型的 10 号键盘功能调用,将从键盘接收的年份数值型字符串按字节存入缓冲区。将字符串中的每个字符转换为对应的十进制数值(利用 09 这 10 个数的 ASCll 码值比其本身大30H 的关系) ,通过判断某年是否为闰年的表达式,判断输出是否为闰年的信息。5.设计方案设计方案 判断某年是否为闰年的汇编语言的表达式为:(AX) MOD 4 EQ 0) AND (AX) MOD 100 NE 0) OR(AX) MOD 400 EQ 0)其中, (AX)中存放的是从键盘输入的年份值。以下程序是判断是否为闰年的汇编程序。cmp dx,0 ;将 dx 中的余数与 0 进行比较,看似否整除jnz lab1 ;JNZ 用来判断比较的结果,如果有不等的数据则跳转。 (zf=1 则转移) ;判断年份是否为 100 的整数倍mov ax,cx ;将前面复制到 cx 寄存器中的年份的数值传给 axmov bx,100 ;将 100 赋给 bx 寄存器,做 div 的源操作数(除数)mov dx,0div bx ;本例中 被除数为 ax,整型数据占两个字节 16 位,除数(即源操作数);为整型数据 100,也占两个字节 16 位,所以按照第 3 中方式存储cmp dx,0 ;将 dx 中的余数与 0 进行比较,看似否整除jnz lab2 ;JNZ 用来判断比较的结果,如果有不4等的数据则跳转。 (zf=1 则转移);判断年份是否位 400 的整数倍mov ax,cxmov bx,400如下图,为判断闰年的流程图:开始显示提示信息输入年份到 BUF 缓冲区CX=BUF+1,即输入年份的实际长度将年份数值转换为 ASCII 字符判断是否为闰年CF=1?显示是闰年的信息结束显示非闰年的信息5四、设四、设 计计 总总 结结一转眼一周的微机原理课程设计在在紧张而又忙碌的氛围中度过了。在本次 课程设计中,我的设计题目是闰年计算。经过一周的课程设计,我们不但对课本 上的知识有了更深的了解和巩固,而且我还学到了平时在课堂上都学习不到的知 识,使我对系统的开发过程有了更加完整的认识。 在设计过程中虽然遇到了不少困难,但当我通过自己查资料、或是向指导老 师请教以及向同学请教在网上询问,使得设计方案中发现的问题得到解决并成功 实现系统所需功能时,那种成就感和满足感足以让我忘记了这些天来的辛苦。 一周的微机原理课程设计在忙碌、紧张、而又充实氛围中度过了,在这短暂 的两周时间里,我学到了很多知识,熟悉了好多程序代码,也认识到自己很多不 足的地方。时间虽短,我却收获颇丰,不单单是对于知识的收获,还夹杂着同学 们之间的友谊与团队合作精神。总之,这次课程设计给了我们一次应用自己所学 知识的机会,使我微机原理这门课程有更深层次的理解,让我们深刻体会到了互 相协作的好处,也为我今后的工作学习带来了重大的帮助。总感觉,一个人的力 量是有限的,多请教别人,虚心求问是我在以后学习中多多发扬的。6五、参考文献五、参考文献1 宋杰,汪志宏,江敏,微机原理与接口技术课程设计,机械工业出版社,2005.42 周明德,微型计算机系统原理及应用习题集、习题解答与实验指导,清华大学出版社,2005.73 张开成,微型计算机原理,西南师范大学出版社,2006.84 沈美明,温冬婵, IBM-PC 汇编语言程序设计第 2 版,清华大学出版社,2006.55 戴梅萼,史嘉权, 微型机原理与技术-习题、实验和综合训练题集,清华大学出版社,2009.47六、致六、致 谢谢为期一周的微机原理课程设计在紧张而又忙碌的氛围中度过了。回忆这短短 的一周时间,我从无知到熟练掌握知识这一过程出现了许多问题。但是经过老师 帮助和我们组的共同努力才克服了重重问题和困难,在这里我们要感谢很多人, 因为如果没有他们,我们还只停留在最初阶段,无法顺利完成。 在我们课程设计完善过程中,我也遇到了这样或那样的技术问题,但经过自 己的不懈努力及查阅大量的资料,最终都得到了基本满意的答案。同时,其他同 学也给了我许多有益的启示,促动和帮助,使我能够顺利的完成课题。 感谢所有给予我帮助的老师,他们辛勤耕作,传道授业,不仅使我们开阔了 视野,拓宽了思路,增长了学识,而且为我们今后的工作和学习打下了牢固的基 础,也使增强我们对计算机的兴趣。是老师给予我无限的创造力和奋斗力,使我 有无限的信心和希望来完成本次的实训内容。 其次,我要感谢我的同学,他们在我们遇到不懂的问题时也会尽量帮助我们。 虽然他们也许看上去没帮我们什么忙,可是也许他们偶然的一名话都对我们起到 了很大的作用。 最后我要感谢我们学校,兰州理工大学给了我们这次机会,让我们得到了锻 炼。让我们在我们的人生路上又添加了美好的一笔。我们会永生难忘。我们很感 激我们的学校,感谢他培育了这么多的优秀学生。8七、附件七、附件 程序代码程序代码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 ;第一个字节指出能容纳的最大字符个数,由用户给出,这里;定义了 8 个字节的缓存区d
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号