在一些作業中,我必須在Assembly中創建一個斐波那契數列程序。我創建了這個代碼,但它似乎沒有正常工作,我不知道爲什麼。我相信我正確地做到了這一點,但EAX在每個循環中都保持「2」。裝配中的非遞歸斐波那契數列
INCLUDE Irvine32.inc
.data
prev DWORD ?
next DWORD ?
val DWORD ?
count DWORD ?
total DWORD ?
myMsg BYTE "Fibonacci Sequence ",0dh,0ah,0
.code
main PROC
mov ecx,15
mov val,1
mov prev,-1
mov eax,1
mov edx,OFFSET myMsg
call WriteString
L1:
mov count,ecx
mov ebx,val
add ebx,prev
mov total,ebx
mov ebx,val
mov prev,ebx
mov eax,total
mov val, ebx
call WriteInt
call Crlf
loop L1
exit
main ENDP
END main
我會在'add'後添加'sub ecx,1',並用'jnz _fib'替換'loop _fib'。但那只是我很無聊。 :P – 2012-03-07 22:56:22
這實際上運作良好。謝謝。我沒有想到這樣做。 – seiryuu10 2012-03-07 23:55:03