|
![]() | 作者: hyg0817 [hyg0817]
![]() |
登录 |
各位前辈,大家好,本莱鸟想自学编程,但不能光停留在想的阶段,得来点实干精神,方可有所收获。所以今天打算完成一个习题,也算是对所学章节的一个巩固。 此贴虽是作业贴,但本莱鸟保证此贴只在本站发表,而且绝对是原创首发。还望站长、版主高抬贵手,勿删此贴为盼。本题完全由本人独立完成,同时还望各位高手多多指教! 题目如下: 试编制一程序,产生n个斐波纳契数列。数列的第1、2个数分别是0、1,从第3个数开始,每一个数等于前两个数之和。因此数列为:0、1、2、3、5、8、13、21、34、......等。 解题思路: 1,建立一个变量,占50个字,用以存放数列,将第一、二字初始化为0、1。 2,将指针指向变量第三个字,将前两个字之数据相加,存入一寄存器,然后再存入第三个字。 3,设立循环次数为48,每循环一次,指针移动一字,以产生数列。 试编程如下: DATA SEGMENT FBLSL DW 0,1,48 DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,FBLSL MOV CX,48 ADD BX,4 CSSL: MOV AX,-4[BX] ADD AX,-2[BX] MOV [BX],AX ADD BX,2 LOOP CSSL MOV AH,4CH INT 21H CODE ENDS END START 至此,题目所要求之功能已基本实现。由于程序比较简短,故略去注释。 本程序在MASM 5.0下编译通过。 THE END 鸣谢: 20CN网络安全小组提供技术论坛 [此贴被 黄勇刚(hyg0817) 在 01月14日02时47分 编辑过] |
地主 发表时间: 13-01-14 02:16 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号