Atividade Gcc

Published on December 2016 | Categories: Documents | Downloads: 50 | Comments: 0 | Views: 204
of 5
Download PDF   Embed   Report

Atividade de arquitetura sobre gcc.

Comments

Content

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

.string "Informe seu nome: "

726D6520
73657520
6E6F6D65
3A2000
.LC1:
0013 255B5E0A

.string "%[^\n]s"

5D7300
.LC2:
001a 53657520

.string "Seu nome \303\251 %s. \n"

6E6F6D65
20C3A920
25732E20
0A00
.text
.globl main
main:
.LFB0:
.cfi_startproc
0000 55

pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16

0001 4889E5

movq %rsp, %rbp
.cfi_def_cfa_register 6

0004 4883EC30

subq

$48, %rsp

0008 64488B04

movq %fs:40, %rax

25280000
00
0011 488945F8
0015 31C0

movq %rax, -8(%rbp)
xorl

0017 BF000000

%eax, %eax
movl

$.LC0, %edi

00
001c E8000000

call

puts

00
0021 488D45D0
0025 4889C6
0028 BF000000

leaq

-48(%rbp), %rax

movq %rax, %rsi
movl

$.LC1, %edi

movl

$0, %eax

call

__isoc99_scanf

00
002d B8000000
00
0032 E8000000

00
0037 488D45D0
003b 4889C6

leaq

-48(%rbp), %rax

movq %rax, %rsi

003e BF000000

movl

$.LC2, %edi

movl

$0, %eax

call

printf

movl

$0, %eax

00
0043 B8000000
00
0048 E8000000
00
004d B8000000
00
0052 488B55F8

movq -8(%rbp), %rdx

0056 64483314

xorq

%fs:40, %rdx

25280000
00
005f 7405

je

0061 E8000000

.L3
call

00
.L3:
0066 C9

leave
.cfi_def_cfa 7, 8

0067 C3

ret
.cfi_endproc

.LFE0:
.Letext0:

__stack_chk_fail

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close