请编制程序,其功能为:已知斐波那契(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,A
M0V CX,BB
LA: ADD AX,BX
XCHG AX, BX
LOOP LA
MOV [RESULT],BX
; *** END ***
[INPUTA.DAT 中的输入数据]:
OOH
[输出结果]
FA