int getnum(int a, int b,int c){
int ee;
c=a+b;
return c ;
}
getnum:
pushl %ebp
movl %esp, %ebp
subl $16, %esp //这里总是16的倍数,如是局部变量多,就会变成subl $32, %esp,subl $48, %esp
movl 12(%ebp), %eax
addl 8(%ebp), %eax //为什么是8不是4呢?因为前面第一句pushl %ebp的时候esp又增加了4,否则的话第一个参数的上面就只有一个eip,那4(%ebp),就可以取到第一个参数了。
movl %eax, 16(%ebp)
movl 16(%ebp), %eax
leave //相当于movl %ebp,%esp ; pop %ebp
ret
阅读(1452) | 评论(0) | 转发(0) |