1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| int fibo_r(int n, int a, int b)
{
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 83 ec 10 sub $0x10,%rsp
8: 89 7d fc mov %edi,-0x4(%rbp)
b: 89 75 f8 mov %esi,-0x8(%rbp)
e: 89 55 f4 mov %edx,-0xc(%rbp)
if (n==0) return a;
11: 83 7d fc 00 cmpl $0x0,-0x4(%rbp)
15: 75 05 jne 1c <fibo_r+0x1c>
17: 8b 45 f8 mov -0x8(%rbp),%eax
1a: eb 25 jmp 41 <fibo_r+0x41>
if (n==1) return b;
1c: 83 7d fc 01 cmpl $0x1,-0x4(%rbp)
20: 75 05 jne 27 <fibo_r+0x27>
22: 8b 45 f4 mov -0xc(%rbp),%eax
25: eb 1a jmp 41 <fibo_r+0x41>
return fibo_r(n-1, b, a+b);
27: 8b 55 f8 mov -0x8(%rbp),%edx
2a: 8b 45 f4 mov -0xc(%rbp),%eax
2d: 01 c2 add %eax,%edx
2f: 8b 45 fc mov -0x4(%rbp),%eax
32: 8d 48 ff lea -0x1(%rax),%ecx
35: 8b 45 f4 mov -0xc(%rbp),%eax
38: 89 c6 mov %eax,%esi
3a: 89 cf mov %ecx,%edi
3c: e8 00 00 00 00 callq 41 <fibo_r+0x41>
41: c9 leaveq
42: c3 retq |
Partager