.globl _fib _fib: pushl %ebp movl %esp, %ebp subl $24, %esp cmpl $0, 8(%ebp) jg recurse movl $1, %eax jmp done recurse: movl 8(%ebp), %eax movl %eax, (%esp) subl $1, (%esp) call _fib movl %eax, -4(%ebp) movl 8(%ebp), %eax movl %eax, (%esp) subl $2, (%esp) call _fib addl -4(%ebp), %eax movl %eax, -12(%ebp) done: leave ret