编译阶段负责将编译预处理阶段的源代码转换成汇编代码。如前所述,gcc通常会自动执行编译过程的所有阶段。如果只需要查看编译阶段的输出结果,就必须告诉gcc在此阶段之后停止,并将输出的汇编代码存储到文件上。我们可以使用“-S”选项来执行此操作(.s是汇编代码文件的常用扩展名),也可以将选项“-masm=intel”传递给gcc,即以Intel语法而不是默认的AT&T语法输出汇编代码。例如,通过以下命令:
可默认生成Prog.s文件。
我们还可以使用C编译器(ccl),根据Prog.i生成汇编文件Prog.s。在编译阶段,可根据需要进行相关的优化操作,例如: