;以下masm6.15下编译通过
;求N位斐波那契数的和
INCLUDE Irvine32.inc
.data
;数组大小
LEN = 5
;储存斐波那契数的数组
arrTmp DWORD LEN DUP(?)
.code
main PROC
MOV EAX, 0
MOV arrTmp[0], 1
MOV ESI, OFFSET arrTmp
MOV ECX, LEN - 1
FBNQ:
ADD EAX, [ESI]
MOV [ESI + TYPE arrTmp], EAX
MOV EAX, [ESI]
ADD ESI, TYPE arrTmp
LOOP FBNQ
MOV EAX, 0
MOV ESI, OFFSET arrTmp
MOV ECX, LEN
SUM:
ADD EAX, [ESI]
ADD ESI, TYPE arrTmp
LOOP SUM
CALL DumpRegs
EXIT
main ENDP
End main
想要的结果达到了,不过就是数组大小(LEN)不能设置成1,有没有更好的思路或着说是算法?忘高手指教 |