一下为C程序文件first.c:
//The first program
int g(int x)
{
return x + 2;
}
int f(int x)
{
return g(x);
}
int main(void)
{
return f(4) - 1;
}
使用的编译命令如下:
编辑first.s文件,删除已"."开头的所有链接信息,留下的汇编代码如下:
g:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
addl $2, %eax
popl %ebp
ret
f:
pushl %ebp
movl %esp, %ebp
subl $4, %esp
movl 8(%ebp), %eax
movl %eax, (%esp)
call g
leave
ret
main:
pushl %ebp
movl %esp, %ebp
subl $4, %esp
movl $4, (%esp)
call f
subl $1, %eax
leav