FIB proc near
push ax ;empilha ax
cmp ax,1 ;compara ax com 1
jz LABEL_IF ;se for verdadeiro vai para label if
cmp ax,2 ;se n for 1 compara com 2
jz LABEL_IF ;se for 0 pula para label_if
dec ax ;decrementa ax
CALL FIB ;chama fib recursivamente
mov cx,bx ;poem o ret da funcao em cx
dec ax ;dec ax
CALL FIB ;chama fib recursivamente
add bx,cx ;soma bx com cx o retorno esta em bx aogra tem fib(n-1)+fib(n-2)
jmp FIB_END ;pula para FIB_END;
LABEL_IF:
mov bx,1
jmp FIB_END
FIB_END:
pop ax
ret
ENDP