Assembly 01
São necessários quatro passos básicos:
gcc –S Æ Stop depois do estágio de compilação, g mas não faz a montagem
Exemplo: p gcc –S arquitetura.c g q
Saída: arquitetura.s
Programa em linguagem Assembly:
gcc – c Æ compila ou monta os arquivos fontes mas não os agrega às bibliotecas.
A saída é um arquivo Objeto com o mesmo nome do arquivo fonte.
Esta compilação gera um arquivo objeto .o o Exemplo: gcc –c arquitetura.c
A
Arquivo i d saída: de íd arquitetura.o it t
gcc – E Æ para depois do estágio á de préé processamento, mas não executa toda a compilação O arquivo q de saída está na forma do código g fonte pré-processado e agrega as bibliotecas.
Exemplo: p gcc -E arquitetura.c g q
|
|more
A saída do ligador une o arquivo objeto ((.o)
o) às bibliotecas e gera um arquivo executável
A compilação de um arquivo .cc gera um arquivo executável Exemplos:
1)gcc –o arquitetura.c
Arquivo de saída: a.out a out
2)gcc arquitetura.c –o arquitetura.e
Arquivo de saída: arquitetura.e
3) gcc –v
Saída:version 3.2 20020927 (prerelease)
Existem algumas opções de otimizar a compilação: -O
O (ô)Æ the compiler tries to reduce code size and execution time without performing any optimizations that take a great deal of compilation time
-O1 Æ optimizing compilation takes somewhat more time, and a lot more memory for a large function
-O2 à Optimize even more. GCC performs nearly all supported optimizations that do not involve a space-speed space speed tradeoff. The compiler does not perform loop unrolling or function inlining. As compared to -O, this option increases both compilation time and the performance of the generated code -O3 à Optimize p yyet more. -O3 turns on all optimizations p specified by -O and also turns on the -finline-functions and frename-registers options
-O0 à Do not optimize
-Os
O Optimize
O ti i for f size. i -Os
O enables bl allll -O2
O2