CSAPP Exp1
meipc@ubuntu:~$ cat ./mj/code1.c
int accum=0;int sum(int x, int y){
int t=x+y;
accum+=t;
return t;
}
int main(){
return sum(1,2);
}
meipc@ubuntu:~$ gcc -o ./mj/code1 -c ./mj/code1.c
meipc@ubuntu:~$ objdump -d ./mj/code1
./mj/code1: file format elf32-i386
Disassembly of section .text:
00000000 <sum>:
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 83 ec 10 sub $0x10,%esp
6: 8b 45 0c mov 0xc(%ebp),%eax
9: 8b 55 08 mov 0x8(%ebp),%edx
c: 01 d0 add %edx,%eax
e: 89 45 fc mov %eax,-0x4(%ebp)
11: a1 00 00 00 00 mov 0x0,%eax
16: 03 45 fc add -0x4(%ebp),%eax
19: a3 00 00 00 00 mov %eax,0x0
1e: 8b 45 fc mov -0x4(%ebp),%eax
21: c9 leave
22: c3 ret
00000023 <main>:
23: 55 push %ebp
24: 89 e5 mov %esp,%ebp
26: 83 ec 08 sub $0x8,%esp
29: c7 44 24 04 02 00 00 movl $0x2,0x4(%esp)
30: 00
31: c7 04 24 01 00 00 00 movl $0x1,(%esp)
38: e8 fc ff ff ff call 39 <main+0x16>
3d: c9 leave
3e: c3 ret