1-Qual o resultado dos seguintes processos executados pelo compilador gcc:
a) gcc –E prog.c –o prog.i
Resposta:
Este é o código-fonte usado para as questões:
#include <stdio.h>
void main ()
{
printf ("Hello World .. \ n”);
}
Esta etapa é responsável pela resolução de diretrizes do pré-processador, como #define, #if,
#include.
* Este comando redireciona a saída do pré processador para o arquivo teste.i
b) gcc –S prog.i –o prog.s
Resposta:
Código Aqui prog.i é código pré-processados e prog.s é traduzido
Prog.s (código traduzido)
Este é o código Assembly nível. Contém todos os mnemônicos como add, sub, empurrar, SJMP.
Para começar a usar o código do produto montado.
Nesta fase é produzida a linguagem de montagem dos arquivos de entrada
*O arquivo teste.s será gerado, já em linguagem assembly da arquitetura.
c) gcc
–c prog.s –o prog.o
Resposta: Aqui prog.s é código traduzido e prog.o é código objeto.
prog.o (código objeto)
Este é o código objeto.
Para começar a usar o arquivo executável abaixo comando.
Produz o arquivo objeto .o, levando em conta a linguagem de montagem dos arquivos de
entrada.
*Gera o arquivo objeto teste.o
d) gcc prog.o –o prog
Resposta:
Este é o arquivo executável (a.out)
Para executar este programa de uso.
Nesta fase os arquivos.o e as bibliotecas são “colocados” no executável.
2. Instale um programa montador ou usar um programa web e explique o seu formato de
arquivo em linguagem de montagem (assembly).
Resposta:
Esse e o código em linguagem c:
#include<stdio.h>
main(){
char nome[30];
printf("Informe seu nome: \n");
scanf("%[^\n]s",nome);
printf("Seu nome é %s. \n",nome);
}
Este é o mesmo código só que em linguagem de montagem:
.Ltext0:
.section .rodata
.LC0:
0000 496E666F