ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:125.60KB ,
资源ID:23596063      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23596063.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于汇编语言的程序设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于汇编语言的程序设计.docx

1、基于汇编语言的程序设计 目 录 第一章 设计课题概述 21.1设计目的 21.2设计内容及要求 3第二章、总体设计 32.1 设计思想及实施方案 32.2 结构概述 3第三章、软件设计 43.1流程图及其说明 43.2源程序清单和注释 5第四章、调试过程及结果 13总 结 174.1设计收获 174.2 心得体会 17参考资料 19第一章 设计课题概述1.1设计目的1、通过本学期对微机原理的学习,掌握的知识还停留在理论的上。但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来。2学习分支、中断和逻辑表达,寄存器的运用和子程序的调用;熟

2、悉汇编语言程序的编译、运行过程;3、了解汇编语言编写的各个流程,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。4、将课堂上所学的知识学以致用,通过程序的制作过程学习课外的新知识,并加强加深对旧知识的理解与掌握。5、熟悉掌握dos系统调令,初步掌握计算机应用系统设计的步骤,提高分析和解决实际问题的能力。6、掌握现代设计手段和汇编语言应用程序。7、通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。1.2设计内容及要求运用汇编语言编写关于闰年判断的汇编程序,根据提示输入任意年

3、份,编写判断闰年的程序,如果是闰年则在屏幕上显示,否则显示不是。需要运用汇编语言,不允许运用c语言,java等语言,并且运用所学过的程序语言和其他技术共同完成闰年判断的程序设计,并且得到运行结果,分析并理解该汇编语言程序的内容,理解程序的相应dos指令调用的相应指令。第二章、总体设计2.1 设计思想及实施方案闰年的判断是一个非常经典的问题,闰年判断的程序设计是基于汇编语言的基础上对闰年的判断的程序设计。在学习各种语言时都会遇到。解决该问题的关键是找到判断某年是否为闰年的方法。要判断某一年是否为闰年,需判断该年份的数值正整数是否满足以下两个条件中的任意一个:能够被4整除,但不能够被100整除;能

4、够被4整除,同时又能够被400整除。2.2 结构概述主模块:显示提示输入年份以及输入的字符内容,和最后输出的判断。子模块:判断输入:该模块是对输入的年份的格式的判断,若是错误则显示错误并显示输入提示,正确则进行下面的操作。字符串转换格式:将数字字符串转换成数字,以进行下面的程序操作。判断闰年:判断输入的年份是否为闰年,若是则输出“the year is a leap !”,若不是则输出“the year is not a leap !”,然后可以无限循环查找其他年数。循环输入:查询完可以继续查询想要查询的年份,并且可以无限次的输入。第三章、软件设计3.1流程图及其说明根据以上结构,可画出以下程

5、序流程图 图3-1 判断闰年流程图本框图列出了此次课程设计的总流程,显示信息,输入数据,判断格式,判断闰年和结束程序。较为直观地显示了设计的顺序结构,循环结构及分支结构。3.2源程序清单和注释根据流程图利用DOS 21H中断类型的10号键盘功能调用,将键盘接受到的年份数值的字符串按字节存入缓冲区。将字符串中的每个字符转换为对应的十进制数值(利用0-9这10个数的ASC码值比其本身大30H的关系),利用判断某年是否为闰年的表达式,输入该年是否为闰年的信息。主要程序代码如下:data segment inbuff db 5,?,5 dup(?) prompt db Please input the

6、 year:,$ errmsg db Input illegal!,$ yes db is leap year,$ no db is not leap year,$ mess db Continue?(y/n):,$ newline db 13,10,$ ;回车换行data ends code segment main proc far assume cs:code,ds:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax lop0: call input call judge lea dx,mess mov ah,09h i

7、nt 21h ;是否继续输入年份的判断 mov ah,01h int 21h cmp al,n je exit continue: lea dx,newline mov ah,09h int 21h jmp lop0 exit: ret main endp ;输入一个具体的年份,并转换成10进制 返回: (ax)=输入的年份 input proc near push bx push cx push dx s1: lea dx,prompt mov ah,09h int 21h ;提示输出 lea dx,inbuff mov ah,0ah int 21h ;键盘输入 mov dl,byte pt

8、r inbuff1 ;把有效地址为inbuff的字节送给dl cmp dl,4 ;输入的值判断是否为4位数 jne error ;调用输入不合条件时的错误处理 mov cx,4 lea bx,inbuff add bx,2 mov ax,0 mov dx,0 lop1: ;检查输入有效性 mov dl,10 mul dl mov dl,byte ptr bx sub dl,30h ;将字符转化为数值 cmp dl,0 jb error cmp dl,9 ja error add ax,dx inc bx,bx+1 ;循环体中字符在字符串中的位置 loop lop1 jmp s2 error:

9、;错误处理 lea dx,newline mov ah,09h int 21h lea dx,errmsg mov ah,09h int 21h lea dx,newline mov ah,09h int 21h jmp s1 s2: mov cx,ax lea dx,newline mov ah,09h int 21h mov ax,cx pop dx pop cx pop bx ;现场恢复 ret input endp ;判断一个年份是否闰年 输入: (ax)=年份 judge proc near push bx push cx push dx push ax ;保存ax;输出要判断的年份

10、 mov cx,4 lea bx,inbuff add bx,2 lop2: mov dl,byte ptr bx mov ah,02h int 21h inc bx loop lop2 ; 循环输出年份正确时结果中的年份 lop3: pop ax mov dx,0 mov cx,ax ;保存ax到cx中 mov bx,4 ;判断是否能被4整除 div bx cmp dx,0 jne not leap mov ax,cx mov bx,100 ;判断是否能被100整除 div bx cmp dx,0 jne is leap mov ax,cx mov bx,400 ;判断是否能被400整除 d

11、iv bx cmp dx,0 jne notleap isleap: lea dx,yes mov ah,09h int 21h jmp s3 notleap: lea dx,no mov ah,09h int 21h s3: lea dx,newline ;换行 mov ah,09h int 21h ;输出年份正确时结果的剩余部分 pop dx pop cx pop bx ret judge endp code ends end start 第四章、调试过程及结果先将masm软件存放到d盘里,然后将源程序保存在同样的存储位置,然后点击开始,运行分别输入:-D:-CD MASM-MASM XU

12、XIN其中运行的结果如下图图4-1 运行调试运行结果有错误,通过多次的查找并修改,使源程序没有错误。如图图4-2 运行结果在软件中调试后,输入LINK,-XUXIN运行上面的程序,会出现初始界面。初始界面如图所示:图4-3初始界面在初始界面的光标处,输入1212,回车换行,则显示THE YEAR IS LEAP;并继续输入文件名XUXIN,屏幕继续显示提示输入的语句PLEASE INPUT: ;!并提示用户继续输入年份,直到输入正确的年份为止;输入2000,回车换行,则显示THE YEAR is leap year;并继续输入了2008、1000、1999等,程序可以无限循环。 运行结果如图所

13、示:图4-4运行结果总 结4.1设计收获两周的课程设计结束了,本次的课程设计中,我不但对课本上的知识有了更深的了解和巩固,而且还学到了平时在课堂上学不到的东西。短暂的时间里,我学到了不少知识,熟悉了很多程序代码,也认识到了自己有许多不足之处。已掌握的知识也不牢固,遇到一些棘手的问题无法自己解决,但是,我通过询问同学,查询资料,最终使问题得以解决。由此,我深刻体会到,只有在实际编程时我们才能认识到自己的不足之处,才能进而进行弥补来使自己的水平有所提高。这次课程设计使我对计算机系统汇编有了更加完整的认识:汇编语言主要是研究软件到硬件的程序设计问题,它是计算机能够提供给用户使用的最快而且最有效的语言

14、,也是能够利用计算机所有硬件特性并直接控制硬件的唯一语言。通过查阅资料我拓宽了自己的知识面,增强了学好汇编语言的信心。这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写了很多小程序。但这次是一个综合的程序,平时的很多程序都用到了。子程序的设计是固定的,因此可以直接从指导资料中调用,大多只需要修改几个参数就可以,这大大方便了我们的设计,为我们节省了很多的时间。不可否认,本程序存在不少缺点和不足,但通过这次课程设计的却找出了自己在学习上的不足,对以后的学习和工作也有指导作用。我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!4.2 心得体会课程设计是我们专业课程知识综合应用

15、的实践训练,也是我们迈向社会,从事职业工作前一个必不少的过程。”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。 实验过程中我们遇到的许多问题仅依靠自己掌握的一些知识是远不能解决的,因此我们发挥团队精神,彼此协作,互相帮助,以集思广益的方式解决了许多问题。大家在实验遇到瓶颈问题时都不曾气馁沮丧,而是翻课本查资料,各尽其能,以求最大限度的解决问题。遇到问题时我们相互提醒相互借鉴,有效地解决了许多问题。大家这种精诚合作的精神使我非常感动。通过整整一个星期的摸索和编程,查资料

16、,终于把程序完成了,和小组的成员一起讨论问题,分析问题,发现问题,解决问题,也收获了不少,我们的编程技术都有所提高,我们的体会就是:要提高自己的编程能力,你必须亲自去体验、去设计、编辑、编译、调试、运行。每一个程序员都是在失败、尝试、失败、尝试与收获中成长起来的。通过老师的提示及相关实验指导书的资料我们找到了入手点,这点也是我觉得题目设置的比较合理的一点:在已有基础题目的基础上加入创新内容。在基础功能的实现上并没有遇到问题,主要也是有参考内容的知道,同时通过参考内容更好的把握了设计的整体思路及各个模块的细节。但是在拓展功能上就有不少的问题。就如我所做的电子琴来说,基本功能的程序已经在那里,但是

17、如何使它可以同时用数码管显示音阶呢?我们就找到了数码管显示的相关程序,但是直接相拼接显然是不行的,他们的端口还有重叠的地方,还有就是8255,8253两块芯片的相关使用指令,这些都是关系到我们程序是否实现功能的所在。我们通过翻阅相关资料,逐步解决了相关的问题,然后我们同时也想到了将我们的电子琴做得与众不同,所以想到了旁边的点阵LED显示器,为了使我们的计划成功,同样的我们也翻阅了很多的资料,最后终于完成。最后在老师的提示下,我们完成了在程序中预置歌曲的功能,还有开机音乐,但是在录制歌曲时出现了问题。我们试了很久,但是最后还是无果而终,留下了一丝遗憾。也希望在以后的实际问题中,能够得到相关解决。

18、也希望老师能够在汇编这一方面多给我们指导。除了微机相关的知识,我通过这个实验更深刻了体会了数字与模拟之间的关系和相互转换的规律。参考资料1 李敬兆, 8086/8088和arm核汇编语言程序设计 中国科技大学出版社,20082 张光长,汇编语言程序设计:北京大学出版社,2009.73 陈够喜等著,微机原理应用实验教程. 北京:人民邮电出版社,20064 刘乐善,微型计算机接口技术及应用.武汉:华中科技大学出版社,20045 沈美明,温冬婵 编著IBMPC汇编语言程序设计(第二版) 清华大学出版社6 张开成,微型计算机原理,西南师范大学出版社,2006.87 谭硫安 张雪兰,windows汇编语言程序设计教程:电子工业大学出版社,2005.4

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

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