请编制程序,其功能为:已知斐波那契(Fibonacci)数0,1,1,2,3,5,8,13……这些数的关系是:从第三项开始,每项都是它前面两项之和。若用ai表示第i项,则有a1=0、a2=1、 ai=ai-1+ai-2(i≥3)。试求出第24个斐波那契数,

admin2009-02-15  32

问题 请编制程序,其功能为:已知斐波那契(Fibonacci)数0,1,1,2,3,5,8,13……这些数的关系是:从第三项开始,每项都是它前面两项之和。若用ai表示第i项,则有a1=0、a2=1、 ai=ai-1+ai-2(i≥3)。试求出第24个斐波那契数,存放在RESULT开始的内存单元中。
   部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END之间补充使其完整,完成要求的功能。或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
   对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终产生运行结果。
   部分程序如下:
    ; PROG1.ASM
       EXTRN  LOAD:FAR, SAVE:FAR
   N  EQU   1
   DSEG  SEGMENT
   SOURCE DW N DUP (?)
   RESULT DW N DUP (0)
   NAME0 DB ’INPUT1.DAT’,0
   NAME1 DB ’OUTPUT1.DAT’,0
   DSEG ENDS
   SSEG SEGMENT STACK
       DB 128 DUP (?)
   SSEG ENDS
   CSEG SEGMENT
    ASSUME CS:CSEG, DS:DSEG;SS:SSEG
   START  PROC  FAR
           PUSH  DS
           XOR   AX,AX
           PUSH  AX
           MOV  AX,DSEG
           MOV  DS,AX
           LEA   DX, SOURCE
           LEA   SI,NAME0
           MOV  CX,N
           CALL  LOAD
      ; *** BEGIN ***
           MOV  AX,______
           MOV  BX, 1
           _____________
   L1:        _____________
           _____________
           _____________
           MOV  [RESULT],BX
      ; *** END ***
           LEA  DX,RESULT
           LEA  SI,NAME1
           MOV CX,N
           CALL  SAVE
           RET
   START   ENDP
   CSEG    ENDS
           END START

选项

答案 ; *** BEGIN *** M0V AX,0 M0V BX,1 M0V CX,22 L1: ADD AX,BX XCHG AX, BX LOOP L1 MOV [RESULT],BX ; *** END *** [INPUT1.DAT 中的输入数据]: OOH [输出结果] F1

解析
转载请注明原文地址:https://jikaoti.com/ti/ccV7FFFM
0

最新回复(0)