The compilation phase takes the preprocessed code and translates it into assembly language
Most compilers also perform heavy optimization in this phase, typically configurable as an optimization level through command line switches such as options -O0 through -O3 in gcc
You can do this using the -S flag (.s is a conventional extension for assembly files).
You also pass the option -masm=intel to gcc so that it emits assembly in Intel syntax rather than the default AT&T syntax.