求Fibonacci数程序设计

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

盛年不重来,一

日难再晨。及时宜

0120810680134

自勉,岁月不待人。

学号

课程设计

题目求Fibonacci数程序设计

学院计算机科学与技术学院

专业班级软件工程0801班

姓名李翊华

指导教师王云华

2011 年 1 月 6 日

目录

1.课程设计任务书 (1)

2.设计目的、内容、时间 (2)

2.1设计的时间 (2)

2.2设计的内容 (2)

2.3设计完成时间 (2)

3.设计环境与工具 (2)

4.程序设计算法说明 (2)

5.程序框图 (3)

6.程序代码 (4)

7.运行结果记录 (8)

8.设计结果测试、分析 (11)

9.参考文献 (11)

10.评分表 (12)

课程设计任务书

学生姓名:李翊华专业班级:软件0801班

指导教师:王云华工作单位:计算机学院

题目: 求Fibonacci数程序设计

初始条件:

DOS操作系统。编辑,汇编,连接,调试工具:edit、masm、link、debug 要求完成的主要任务:

程序接受用户键入的n值(1~100),根据给定的n值(注意处理非法n值),计算Fibonacci数。由键盘输入控制值,按“Q”键退出。

课程设计报告书写要求:

1.封面(使用教务处统一格式)

2.报告书目录

3.课程设计任务书

4.设计目的、设计内容、完成时间

5.设计环境与工具

6.程序设计算法说明、框图

7.运行结果记录

8.设计结果测试、分析

9.参考文献

10.其他

11.评分表

12.封底

时间安排:课程设计时间为18周一周。

指导教师签名: 2011年 1 月 6日

系主任(或责任教师)签名: 2011 年 1月 6日

2.设计目的、内容、时间安排

2.1设计目的:

通过该课程设计,熟悉计算机体系结构,DOS的操作系统的功能调用,能较为熟练的运用汇编语言进行程序的编写。进一步了解汇编语言控制计算机硬件的方法,提高应用汇编语言编写程序的能力。

2.2设计内容:

程序接受用户键入的n值(1~100),根据给定的n值(注意处理非法n值),计算Fibonacci数。由键盘输入控制值,按“Q”键退出。

2.3时间安排:

2011年1月1日-7日(第18周)

地点:鉴主10楼软件实验室。

3.设计环境与工具

DOS操作系统、文本编辑器

MASM.EXE、LINK.EXE、DEBUG.EXE

4.程序设计算法说明

程序要求计算Fibonacci数列的前n项,并把第n项的结果显示在屏幕上,因此在程序运算过程中,主要的部分就是Fibonacci数列的前n项的值计算出来,并且以十进制的方式将第n项的值显示在屏幕上。

4.1计算前n项的值

输入n的值后,先判断是否是数值。如果是Q或q,则显示已退出提示,退出程序。如果是其他字符,则显示输入错误的信息,提示重新输入。如果是数值,则进入后面的计算步骤。

将输入的数值存入cx中,如果数值小于等于2,则直接输出结果。否则,就以cx-2作为外循环,把两个数相加,将尾数与高位开储存,直至循环结束。

4.2将转化成十进制

在存储时,是将相加后的结果多次除以10后,余数和商数先后进栈存储。

在输出时,要求以十进制输出。则先判断高位是否为0,为0则出栈但不输出,从下一位开始依次输出,并显示。显示结果就是要求的第n项的十进制结果。

5.设计框图

主流程图

外循环流程图

6.程序代码

datas segment

;此处输入数据段代码

result db 1d,24 dup(0)

x db 1d,24 dup(0)

mess1 db 0dh,0ah,'Please choose a data from 1 to 100:','$' mess2 db 0dh,0ah,'The result is:','$'

mess3 db 0dh,0ah,'Press Q/q to exit.','$'

flag dw

messerror db 0dh,0ah,'Input error,please re-enter.','$' quit db 0dh,0ah,'You have typed Q/q to exit.','$' datas ends

stacks segment

;此处输入堆栈段代码

dw 128 dup(?)

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks,es:datas start:

mov ax,datas ;ds寄存器设置到当前的数据段

mov ds,ax

mov es,ax

mov ax,stacks ;ss寄存器设置到当前堆栈段

mov ss,ax

;此处输入代码段代码

reinput:

push ax ;进栈

push bx

push cx

push dx

push si

push di

mov ah,09 ;显示操作符

lea dx,mess3

int 21h

lea dx,mess1

相关文档
最新文档