C函数fact的汇编语言形式.file"foo.c"pushi%eax.textcallfact.globlfactaddl$16,%esp.type fact,@functionimull8(%ebp), %eaxfact:movl%eax, -4(%ebp)pushi%ebp.L1:movl %esp,%ebpmovl-4(%ebp),%eaxsubl $4,%espleavecmpl $0, 8(%ebp)retjg.L2.Lfe1:movl $1, -4(%ebp).sizefact..Lfe1-factjmp.L1.ident"GCC:(GNU)3.2.2.L2:20030222 (Red Hat Linux 3.2.2-5)subl $12, %espmovl 8(%ebp), %eaxdecl %eax《编译原理与技术》讲义
《编译原理与技术》讲义 C函数fact的汇编语言形式 .file "foo.c" .text .globl fact .type fact,@function fact: pushl%ebp movl %esp, %ebp subl $4, %esp cmpl $0, 8(%ebp) jg .L2 movl $1, -4(%ebp) jmp .L1 .L2: subl $12, %esp movl 8(%ebp), %eax decl %eax pushl %eax call fact addl $16, %esp imull 8(%ebp), %eax movl %eax, -4(%ebp) .L1: movl -4(%ebp), %eax leave ret .Lfe1: .size fact,.Lfe1-fact .ident "GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
编译程序的组成结构词法分析阶段语法分析阶段语义分析、中间代码生成优化阶段目标代码生成《编译原理与技术》讲义
《编译原理与技术》讲义 编译程序的组成结构 词法分析阶段 语法分析阶段 语义分析、中间代码生成 优化阶段 目标代码生成