




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理实践课程设计报告题目:递归方法求斐波那契函数FIB(N) 专业: 计算机系 班级: 学号: 姓名: 指导教师: 胡美娇 完成日期:2013年 1 月 1 日一、课程设计目的1、 加深对汇编语言理论和基本知识的理解, 掌握DOS和BIOS系统功能调用,掌握运用汇编语言设计具有一定功能的软件的基本方法.2、 通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力3、 提高调试程序的能力二、课程设计内容递归方法求斐波那契函数FIB(N)要求:从键盘输入数N, 当N=0,1时,FIB=1 ;当N=2时,FIB=FIB(N-1)+FIB(N-2),结果用十进制输出。要求:具有友好的交互界面,建立主菜单界面:*Display Program* main input number n: the FIBN= 在屏幕上显示信息三、课程设计过程1、算法设计(画出算法流程图) 结束 显示所求结果 显示FIB(N)= CALL FIB(N)Si=0 键盘输入数FIBNNum是0还是1Num减到1调用Call把FIBsi和FIBsi-2赋给FIBsi,FIBsi赋给FIBsi-2,即根据后两个数求前一个数1赋给FIBsi和FIBsi-2返回2、程序代码清单DATA SEGMENT NUM DW ? GRADE DW 2(?) MESS1 DB ,0AH,0DH,0AH,0DH,*Display Program* MESS2 DB ,0AH,0DH, INPUT NUMBER N:$,0AH,0DH, MESS3 DB 0AH,0DH,FIB(N)=$ MESS4 DB INPUT ERROR! $ MESS5 DB ,0AH,0DH, INPUT NUMBER N: DB 0AH,0DH,N=$ DATA ENDSPROGNAM SEGMENT MAIN PROC FAR ;主程序入口ASSUME CS:PROGNAM,DS:DATASTART: PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,MESS1 MOV AH,09 INT 21H L1: LEA DX,MESS5 MOV AH,09 INT 21H MOV BX,0 ;显示欢迎主界面 NEWCHAR: MOV AH,01H ;键盘输入,每个数据以回车结束 INT 21H CMP AL,13 JE LEE01 SUB AL,30H ;转移 JL ERROR CMP AL,9D ;AL中的数与取来的数据比较 JG ERROR CBW XCHG AX,BX ;交换指令 MOV CX,10D MUL CX XCHG AX,BX ADD BX,AX JMP NEWCHAR ;无条件跳转 ERROR: LEA DX,MESS4 MOV AH,09 INT 21H ;中断 JMP L1 RET LEE01: MOV NUM,BX MOV SI,0 MOV AX,0 CALL FIB(N) ;段内直接过程调用 LEA DX,MESS3 MOV AH,09 INT 21H PUSH BX ;将相关信息压入栈里 PUSH CX PUSH SI PUSH DI MOV BX,GRADESI MOV CX,10000D CALL DEC_DIV MOV CX,1000D CALL DEC_DIV MOV CX,100D CALL DEC_DIV MOV CX,10D CALL DEC_DIV MOV CX,1D CALL DEC_DIV POP DI POP SI POP CX ;将相关信息弹出栈内 POP BX JMP L1 RET MAIN ENDP DEC_DIV PROC NEAR MOV AX,BX MOV DX,0 DIV CX MOV BX,DX MOV DL,AL ;结果要放在dl中 ADD DL,30H MOV AH,02H INT 21H RETDEC_DIV ENDPFIB(N) PROC NEAR CMP NUM,0 ;num为0转到L2 JE LEE02 CMP NUM,1 ;num自减1 JE LEE02 DEC NUM CALL FIB(N) MOV AX,GRADESI MOV BX,GRADESI-2 MOV GRADESI-2,AX ADD AX,BX ;进行加法运算 MOV GRADESI,AX JMP LEE03LEE02: MOV GRADESI,1 ADD SI,2 MOV GRADESI,1LEE03: RETFIB(N) ENDPPROGNAM ENDSEND START 3、调试过程(包括实验过程中实验步骤,出现的问题,解决的方法,使用的实验数据等)步骤:首先是先对递归函数的了解,然后分成三种情况,一种是输入的是0和1的情况,一种是输入的是其他数字,最后一种是输入的不是数字,最后对各种情况进行设计。出现的问题:刚开始只能输入单个字符,一输入一个数字就开始进行判断解决的方法:后面采用了用回车键来判断一段数据输入完毕使用的实验数据:本函数所使用的数据都为数字4、 系统运行结果截图欢迎主界面 运行及结果 5、结果分析用一组数据来检测程序是否正确NUM=0时输出FIB(N)=1 NUM=1时输出FIB(N)=1 NUM=30时输出FIB(N)=35549 NUM=A时输出INPUT ERROR! NUM=$时输出INPUT ERROR! 经过计算以上结果都是正确的,所以程序是正确的四、课程设计体会 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省芜湖市繁昌区2024-2025学年高二上学期期中考试英语试题及答案
- 心理分析问答题目及答案
- 小学学科数学题目及答案
- 忘不了作文500字(9篇)
- 合作经营养殖项目合同
- 项目管理计划及预算制定指导性文档模板
- 农民特色农产品购销合同书
- 旬阳县消防知识培训课件
- 纪检基础知识培训课件
- 五角飞碟200字(8篇)
- 2025年职测e类试题及答案
- 2024中国高血压防治指南要点解读
- 消防车辆安全行驶课件
- 偏瘫患者穿衣健康宣教
- 无废工厂宣传课件
- 酒店预算培训课件
- 关于财富的课件
- 2025-2030中国汽车工程服务外包(ESO)行业现状调查与前景趋势研究报告
- 2025至2030全球及中国实验室PH电极行业发展趋势分析与未来投资战略咨询研究报告
- 相控阵超声检测技术及应用
- 儿科血小板减少的护理查房
评论
0/150
提交评论