《微机原理课设实验报告最终修订版.doc》由会员分享,可在线阅读,更多相关《微机原理课设实验报告最终修订版.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河北科技大学课程设计报告学生姓名: 张德正 学号: 120701233 专业班级: 电子信息122班 课程名称: 微型计算机原理及应用技术 学年学期: 2 0 14 2 0 15 学年第 1 学期 同组人员: 薛小禹、应佳捷、张念琦、张美萍指导教师: 赵艳 2 0 14年 12月课程设计成绩评定表学生姓名张德正学号120701233成绩专业班级电信122起止时间2014-12-22至 2014-12-26设计题目加法练习程序指导教师评语指导教师:年 月 日目录一、课程设计目的-1二、课程设计题目-1三、设计任务与要求-1四、汇编语言程序设计的基本步骤-2五、课程设计原理及方案-2六、程序与分析
2、-8七、实施结果-9八、小组成员及贡献 -10九、设计体会-10十、参考资料-10一、课程设计目的:1、掌握汇编语言程序的建立和运行;2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;3、熟悉常用的DOS功能;4、小组合作完成设计题目。课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设
3、计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书等表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。通过设计过程,要求学生熟悉和掌握微机系统的软件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的系统方案论证设计、编程、软件调试、查阅资料、编写说明书等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练的熟练掌握微机系统的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的软件调试方法和步骤,熟悉微机系统的软件开发工具的使用
4、方法。二、 课程设计题目 加法练习程序 三、设计任务与要求:1、 设计加法练习程序;2、 程序设计基本要求: 1)菜单 内容包括:输入字符串程序运行退出 2)输入字符串 随机给出百位数以内的加法算式,并提示输入答案; 3)程序运行 若答案正确,则给出正确提示;若答案错误,则给出错误提示,并提示输入答案; 4)按R键则继续下一题,按Q键则返回DOS系统。四、汇编语言程序设计的基本步骤1.分析问题 首先必须明确求解问题的意义和任务。对题目给出的已知条件和要完成的任务进行详细地了解和分析,将一个实际的问题转化为计算机可以处理的问题。2.确定算法所谓算法,简单地说就是计算机能够实现的有限的解题步骤。我
5、们知道,计算机只能进行最基本的算术运算和逻辑运算,要完成较为复杂的运算和控制操作,必须选择合适的算法,这是正确编程的基础。3.设计流程图将提出的算法或编程思想用流程图的方式画出4.根据流程图编写程序编写程序是采用程序设计语言来实现上面已确定的算法,此过程有些书上称为编码。本书所介绍的是采用汇编语言编写程序。采用汇编语言编写程序应注意以下几个问题:(1)必须详细了解CPU的编程模型、指令系统、寻址方式及相关伪指令;(2)必须进行存储空间和工作单元的合理分配;(3)多次使用的程序段可采用子程序或宏指令;(4)尽可能用标号或变量来代替绝对地址和常数;5.程序的检验程序编写好以后,必须经过书面检查和上
6、机调试,以便说明程序是否正确。检验时,应预先选择典型数据,检查是否可以得到预期结果。五、课程设计原理及方案 1、流程图RANDOM函数随机产生加数N1和被加数N2进行加法运算判断输入结果是否正确提示输入运算结果R提示用户输出R或者QQ退出判断输入 2、使用的DOS功能:1) 显示字符串 MOV AH,09H INT 21H ;入口参数DS:DX=缓冲区2) 键盘输入一个字符 MOV AH,01H INT 21H ; AL=输入的字符3)终止当前程序并返回调用程序 MOV AH,4CH INT 21H ;AL=退出码4)输入字符串 MOV AH,0AH INT 21H ;入口参数DS:DX=缓冲
7、区 5)输出单字符 MOV AH,2 INT 21H ;DL=要显示字符的ASCII码3、使用的BIOS功能:1) MOV AL,0AH;在光标位置显示字符 INT 10H2) MOV AH,0;从键盘读字符INT 16H 3) MOV AX,0E20H;空一格 INT 10H3、使用工具和软件: 计算机和MASM汇编软件六、程序与分析OUTPUT MACRO XLEA DX,XMOV AH,9INT 21HENDMCODE SEGMENTASSUME CS:CODE,DS:CODESTART:PUSH CSPOP DSOUTPUT TIPSAGAIN:MOV AX,0E20HINT 10HC
8、ALL JIAFAOUTPUT MSGKEY:MOV AH,0INT 16H;无回显接收一键CMP AH,13H ;RJZ AGAINCMP AH,10H ;QJNZ KEYOUTPUT EXITMOV AH,1INT 21H ; 输入字符MOV AH,4CH INT 21H ; 返回DOSJIAFA:CALL RANDOMMOV SUM,AXCALL SHOWMOV DL,+MOV AH,2INT 21HCALL RANDOMADD SUM,AXCALL SHOWNEXT:MOV AX 0E20H 串间空格隔开 INT 10HMOV DL,=MOV AH,2INT 21H 输出=CALL I
9、NPUTCMP BP,SUMJZ DONEOUTPUT NOJMP NEXTDONE:OUTPUT YESRET; 功能:产生一个百位以内的随机数存于AX中 RANDOM: XOR AX,AX AX清零 OUT 43H,AL IN AL,40H MOV AH,AL IN AL,40H XCHG AL,AH XOR DX,DX MOV BX,99 DIV BX MOV AX,DX ; 余数为随机数RET 返回断点处SHOW:MOV AX ,AXAAMOR AX,3030HXCHG AH,ALMOV DX,AXMOV AH,2INT 21HMOV DL,DHINT 21HRETINPUT:XOR
10、BP,BPMOV CX,3GET:MOV AH,0INT 16HCMP AL,0DHJZ OK CMP AL ,0JB GETCMP AL,9JA GETMOV AH,0EHINT 10HAND AX ,0FHXCHG BP,AXMOV BX,10MUL BXADD BP,AXLOOP GETOK:CMP CX,3JNZ OK 1MOV AX,0E30HINT 10HOK 1: RETTIPS DB 9,9,JIA FA LIAN XI,0DH,0AH,$YES DB Correct!$NO DB Error!,0DH,0AH,$MSG DB DH,0AH, Continue(R) or Ex
11、it(Q)?,0DH,0AH$EXIT DB 0DH ,0AH, Press any key to quit.$SUM DW 0CODE ENDS END START七、 实施结果 程序运行之后,随机给出百位数以内的加法算式,并提示输入答案;若答案正确,则给出正确提示;若答案错误,则给出错误提示,并提示输入答案;按R键则继续下一题,按Q键则返回DOS系统。八、 小组成员及贡献小组成员:薛小禹、应佳捷、张德正、张美萍、张念琦我(张德正)主要负责用RANDOM的随机种子的子程式,其实是伪随机过程,指定一个算法,根据该子程式输出的结果来产生随机的加法算式。产生一个被加数N1,产生一个加数N2。RAN
12、DOM: XOR AX,AX AX清零 OUT 43H,AL IN AL,40H MOV AH,AL IN AL,40H XCHG AL,AH XOR DX,DX MOV BX,99 DIV BX MOV AX,DX ;余数为随机数 RET 返回断点处九、 设计体会 总的来说,在整个设计的过程中,对文件的知识有了相当程度的了解掌握,基本上学会了对图的操作等。在对文件的自学过程中也认识 ,在学习的过程中要灵活的把所学的知识运用到实践当中,并且还要巩固练习和运用,这样才可以牢牢的记住。试验也对数据结构的知识进行了复习,尤其是结构体的定义、地址与引用的合理使用以及记录指针的使用也认识到数据结构在实践
13、运用中的重要性,在对程序不断的修改和逐步改进提升的过程中,积累了不少经验,为在以后的学习和实践应用奠定了一定的基础。做过很多课程设计,但完成了微机原理的课程设计后,我才感觉这门还是真正需要些技术含量的。需要我们同学深入的去思考,去学习查资料,我在这一周的时间里收获也是很大的,对汇编语言由略知皮毛到能运用它独立做一些小程序。这种技能都是课堂上学不到的,但对未来却有很大的帮助。当我面对一个难题,从一筹莫展到逐渐清晰明朗,调试调试再调试,而后最终完成任务。只有亲身经历过,才能感受其中的艰辛与快乐。更重要的是我们对汇编有了更进一步的理解。有了实际应用的体会,知识更加的融会贯通了。不管是从知识上还是从思
14、维方式上,我们都得到了很大的进步。第一天的任务便是熟悉编程环境,掌握编程的步骤,然后编写一个范例小程序。当天便遇到了问题,怎样正确运用DOS的各个功能调用,因为课堂上讲的关于这方面的知识都很不系统,只是勉强记住其对应的功能而却不知道实际运用的方法。然后我就对照着书上的例子和指导书上的范例程序,把各个功能都调试运行了一遍。并且着重学习了一下经常用到的几个功能,像09号功能、0A号功能等。其中我发现了以前编程只知道往上写却不知道起作用的语句都在调试的过程中慢慢清晰了。接下来的几次实验,我们针对平时讲课比较抽象的内容进行测试,当然,一开始总是会出现或多或少、或大或小的问题,但经过努力,终于可以克服这些困难,能够独立的设计程序。而且我们平时遇到的困难,如果不能独立解决,首先我会先从书中寻找答案,如果找不到再问同学或者老师求解,或者从网上寻找答案,最后通过这个困难学到了之前不懂的东西,并进行运用和掌握。在最后的课程设计中,老师给我们规定了题目,然后我们在组内进行了分工,每个人负责一个部分,最后在汇总调试。虽然设计的程序中有些许差错,最终经过修正,可以完成了最初的实验目的。十、 参考资料 朱金钧、麻新旗:微型计算机原理及应用技术 机械工业出版社 张弥左、王兆月、邢立军:微型计算机接口技术机械工业出版社