微机原理课设实验报告最终修订版.docx
《微机原理课设实验报告最终修订版.docx》由会员分享,可在线阅读,更多相关《微机原理课设实验报告最终修订版.docx(15页珍藏版)》请在冰点文库上搜索。
![微机原理课设实验报告最终修订版.docx](https://file1.bingdoc.com/fileroot1/2023-5/19/3a91cf19-3e61-467a-8109-dc1e27e6c67a/3a91cf19-3e61-467a-8109-dc1e27e6c67a1.gif)
微机原理课设实验报告最终修订版
河北科技大学
课程设计报告
学生姓名:
张德正学号:
120701233
专业班级:
电子信息122班
课程名称:
微型计算机原理及应用技术
学年学期:
2014—2015学年第1学期
同组人员:
薛小禹、应佳捷、张念琦、张美萍
指导教师:
赵艳
2014年12月
课程设计成绩评定表
学生姓名
张德正
学号
120701233
成绩
专业班级
电信122
起止时间
2014-12-22至2014-12-26
设计题目
加法练习程序
指
导
教
师
评
语
指导教师:
年月日
目录
一、课程设计目的------------------------------------1
二、课程设计题目------------------------------------1
三、设计任务与要求----------------------------------1
四、汇编语言程序设计的基本步骤----------------------2
五、课程设计原理及方案------------------------------2
六、程序与分析---------------------------------------8
七、实施结果-----------------------------------------9
八、小组成员及贡献--------------------------------10
九、设计体会---------------------------------------10
十、参考资料----------------------------------------10
一、课程设计目的:
1、掌握汇编语言程序的建立和运行;
2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;
3、熟悉常用的DOS功能;
4、小组合作完成设计题目。
课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书等表达设计思想和结果的能力。
培养学生事实求是和严肃认真的工作态度。
通过设计过程,要求学生熟悉和掌握微机系统的软件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的系统方案论证设计、编程、软件调试、查阅资料、编写说明书等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练的熟练掌握微机系统的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的软件调试方法和步骤,熟悉微机系统的软件开发工具的使用方法。
2、课程设计题目
加法练习程序
三、设计任务与要求:
1、设计加法练习程序;
2、程序设计基本要求:
1)菜单
内容包括:
①输入字符串②程序运行③退出
2)输入字符串
随机给出百位数以内的加法算式,并提示输入答案;
3)程序运行
若答案正确,则给出正确提示;若答案错误,则给出错误提示,并提示输入答案;
4)按R键则继续下一题,按Q键则返回DOS系统。
四、汇编语言程序设计的基本步骤
1.分析问题
首先必须明确求解问题的意义和任务。
对题目给出的已知条件和要完成的任务进行详细地了解和分析,将一个实际的问题转化为计算机可以处理的问题。
2.确定算法
所谓算法,简单地说就是计算机能够实现的有限的解题步骤。
我们知道,计算机只能进行最基本的算术运算和逻辑运算,要完成较为复杂的运算和控制操作,必须选择合适的算法,这是正确编程的基础。
3.设计流程图
将提出的算法或编程思想用流程图的方式画出
4.根据流程图编写程序
编写程序是采用程序设计语言来实现上面已确定的算法,此过程有些书上称为编码。
本书所介绍的是采用汇编语言编写程序。
采用汇编语言编写程序应注意以下几个问题:
(1)必须详细了解CPU的编程模型、指令系统、寻址方式及相关伪指令;
(2)必须进行存储空间和工作单元的合理分配;
(3)多次使用的程序段可采用子程序或宏指令;
(4)尽可能用标号或变量来代替绝对地址和常数;
5.程序的检验
程序编写好以后,必须经过书面检查和上机调试,以便说明程序是否正确。
检验时,应预先选择典型数据,检查是否可以得到预期结果。
五、课程设计原理及方案
1、流程图
提示输入运算结果
R
提示用户输出’R’或者’Q’
Q
退出
判断输入
2、使用的DOS功能:
1)显示字符串MOVAH,09H
INT21H;入口参数DS:
DX=缓冲区
2)键盘输入一个字符MOVAH,01H
INT21H;AL=输入的字符
3)终止当前程序并返回调用程序MOVAH,4CH
INT21H;AL=退出码
4)输入字符串MOVAH,0AH
INT21H;入口参数DS:
DX=缓冲区
5)输出单字符MOVAH,2
INT21H;DL=要显示字符的ASCII码
3、使用的BIOS功能:
1)MOVAL,0AH;在光标位置显示字符
INT10H
2)MOVAH,0;从键盘读字符
INT16H
3)MOVAX,0E20H;空一格
INT10H
3、使用工具和软件:
计算机和MASM汇编软件
六、程序与分析
OUTPUTMACROX
LEADX,X
MOVAH,9
INT21H
ENDM
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
START:
PUSHCS
POPDS
OUTPUTTIPS
AGAIN:
MOVAX,0E20H
INT10H
CALLJIAFA
OUTPUTMSG
KEY:
MOVAH,0
INT16H;无回显接收一键
CMPAH,13H;'R'
JZAGAIN
CMPAH,10H;'Q'
JNZKEY
OUTPUTEXIT
MOVAH,1
INT21H;输入字符
MOVAH,4CH
INT21H;返回DOS
JIAFA:
CALLRANDOM
MOVSUM,AX
CALLSHOW
MOVDL,'+'
MOVAH,2
INT21H
CALLRANDOM
ADDSUM,AX
CALLSHOW
NEXT:
MOVAX0E20H串间空格隔开
INT10H
MOVDL,'='
MOVAH,2
INT21H输出=
CALLINPUT
CMPBP,SUM
JZDONE
OUTPUTNO
JMPNEXT
DONE:
OUTPUTYES
RET;功能:
产生一个百位以内的随机数存于AX中
RANDOM:
XORAX,AXAX清零
OUT43H,AL
INAL,40H
MOVAH,AL
INAL,40H
XCHGAL,AH
XORDX,DX
MOVBX,99
DIVBX
MOVAX,DX;余数为随机数
RET返回断点处
SHOW:
MOVAX,AX
AAM
ORAX,3030H
XCHGAH,AL
MOVDX,AX
MOVAH,2
INT21H
MOVDL,DH
INT21H
RET
INPUT:
XORBP,BP
MOVCX,3
GET:
MOVAH,0
INT16H
CMPAL,0DH
JZOK
CMPAL,'0'
JBGET
CMPAL,'9'
JAGET
MOVAH,0EH
INT10H
ANDAX,0FH
XCHGBP,AX
MOVBX,10
MULBX
ADDBP,AX
LOOPGET
OK:
CMPCX,3
JNZOK1
MOVAX,0E30H
INT10H
OK1:
RET
TIPSDB9,9,'JIAFALIANXI',0DH,0AH,'$'
YESDB'Correct!
$'
NODB'Error!
',0DH,0AH,'$'
MSGDBDH,0AH,'Continue(R)orExit(Q)?
',0DH,0AH'$'
EXITDB0DH,0AH,'Pressanykeytoquit...$'
SUMDW0
CODEENDS
ENDSTART
7、实施结果
程序运行之后,随机给出百位数以内的加法算式,并提示输入答案;若答案正确,则给出正确提示;若答案错误,则给出错误提示,并提示输入答案;按R键则继续下一题,按Q键则返回DOS系统。
8、小组成员及贡献
小组成员:
薛小禹、应佳捷、张德正、张美萍、张念琦
我(张德正)主要负责用RANDOM的随机种子的子程式,其实是伪随机过程,指定一个算法,根据该子程式输出的结果来产生随机的加法算式。
产生一个被加数N1,产生一个加数N2。
RANDOM:
XORAX,AXAX清零
OUT43H,AL
INAL,40H
MOVAH,AL
INAL,40H
XCHGAL,AH
XORDX,DX
MOVBX,99
DIVBX
MOVAX,DX;余数为随机数
RET返回断点处
9、设计体会
总的来说,在整个设计的过程中,对文件的知识有了相当程度的了解掌握,基本上学会了对图的操作等。
在对文件的自学过程中也认识,在学习的过程中要灵活的把所学的知识运用到实践当中,并且还要巩固练习和运用,这样才可以牢牢的记住。
试验也对数据结构的知识进行了复习,尤其是结构体的定义、地址与引用的合理使用以及记录指针的使用也认识到数据结构在实践运用中的重要性,在对程序不断的修改和逐步改进提升的过程中,积累了不少经验,为在以后的学习和实践应用奠定了一定的基础。
做过很多课程设计,但完成了微机原理的课程设计后,我才感觉这门还是真正需要些技术含量的。
需要我们同学深入的去思考,去学习查资料,我在这一周的时间里收获也是很大的,对汇编语言由略知皮毛到能运用它独立做一些小程序。
这种技能都是课堂上学不到的,但对未来却有很大的帮助。
当我面对一个难题,从一筹莫展到逐渐清晰明朗,调试调试再调试,而后最终完成任务。
只有亲身经历过,才能感受其中的艰辛与快乐。
更重要的是我们对汇编有了更进一步的理解。
有了实际应用的体会,知识更加的融会贯通了。
不管是从知识上还是从思维方式上,我们都得到了很大的进步。
第一天的任务便是熟悉编程环境,掌握编程的步骤,然后编写一个范例小程序。
当天便遇到了问题,怎样正确运用DOS的各个功能调用,因为课堂上讲的关于这方面的知识都很不系统,只是勉强记住其对应的功能而却不知道实际运用的方法。
然后我就对照着书上的例子和指导书上的范例程序,把各个功能都调试运行了一遍。
并且着重学习了一下经常用到的几个功能,像09号功能、0A号功能等。
其中我发现了以前编程只知道往上写却不知道起作用的语句都在调试的过程中慢慢清晰了。
接下来的几次实验,我们针对平时讲课比较抽象的内容进行测试,当然,一开始总是会出现或多或少、或大或小的问题,但经过努力,终于可以克服这些困难,能够独立的设计程序。
而且我们平时遇到的困难,如果不能独立解决,首先我会先从书中寻找答案,如果找不到再问同学或者老师求解,或者从网上寻找答案,最后通过这个困难学到了之前不懂的东西,并进行运用和掌握。
在最后的课程设计中,老师给我们规定了题目,然后我们在组内进行了分工,每个人负责一个部分,最后在汇总调试。
虽然设计的程序中有些许差错,最终经过修正,可以完成了最初的实验目的。
10、参考资料
朱金钧、麻新旗:
《微型计算机原理及应用技术》机械工业出版社
张弥左、王兆月、邢立军:
《微型计算机接口技术》机械工业出版社