SLIDE 2 Which code would you rather analyze?
080483f9 <bar>: 80483f9: push %ebp 80483fa: mov %esp,%ebp 80483fc: sub $0x10,%esp 80483ff: movl $0x0,-0x4(%ebp) 8048406: movl $0x1,-0x8(%ebp) 804840d: cmpl $0x0,0x8(%ebp) 8048411: jle 8048435 <bar+0x3c> 8048413: pushl -0x4(%ebp) 8048416: call 80483cb <foo> 804841b: add $0x4,%esp 804841e: mov %eax,%edx 8048420: mov -0x8(%ebp),%eax 8048423: imul %edx,%eax 8048426: mov %eax,-0x8(%ebp) 8048429: addl $0x1,-0x4(%ebp) 804842d: mov -0x4(%ebp),%eax 8048430: cmp 0x8(%ebp),%eax 8048433: jl 8048413 <bar+0x1a> 8048435: mov -0x8(%ebp),%eax 8048438: leave 8048439: ret
int bar(int a1){ int v1 = 0; int v2 = 1; if(a1 > 0){ do{ v2 = v2 * foo(v1); v1 = v1 + 1; } while(v1 < a1); } return v2; } int bar(int max){ int result = 1; for(int i = 0 ; i < max ; i++){ result = result * foo(i); } return result; }