Вы находитесь на странице: 1из 2

Prctica 1

Desarrollo
Utilizando el compilador gcc, se va a comprobar la salida de cada uno de los
pasos en el sistema de procesamiento de lenguaje
1. Escriba un programa breve en lenguaje ANSI C, tipo hola mundo que
incluya la biblioteca < stdio.h >; al cul nombrar programa.c.
#include<stdio.h>
int main(){
printf("hola mundo");
}
2. Ejecutar el comando cpp programa.c > programa.i.
Qu programa se invoca con esta instruccin y que diferencia hay entre el
archivo de entrada con el de salida?
Hint: Busque el contenido del archivo stdio.h para dar su respuesta a la
pregunta anterior.
El programa que se invoca es el preprocesador y coloca a la salida una lista de
los archivos que utiliza el cdigo fuente su ubicacin y algunas banderas para
identificar la lnea para posteriores errores.
3. Ejecutar el comando gcc -Wall -S programa.i.
Qu programa se invoca con el comando y qu contiene ese archivo de
salida?
Hint: el archivo de salida ser programa.s
Invoca al compilador y le indica que nos devuelva las advertencias y un archivo
con algunos cdigos en ensamblador y algunas etiquetas del cdigo fuente.
4. Ejecutar el comando as programa.s -o programa.o
Qu programa se invocada y qu debe contener el archivo de salida segn la
teora? Coincide el archivo de salida con la teora?
El programa invocado es el ensamblador y el archivo debe tener cdigo
mquina, el archivo contiene algunos smbolos extraos que quizs no
coincidan con cdigo mquina.
5. Buscar en el equipo donde se est trabajando la ruta para los siguientes
archivos:
crt1.o
ctri.o
crtbegin.o: /usr/lib/gcc/i686-linux-gnu/4.6/crtbegin.o
crtend.o: /usr/lib/gcc/i686-linux-gnu/4.6/ crtend.o

Ejemplo: si crt1.o tiene la ruta /usr/lib/x86 64-linux-gnu/crt1.o


y crtbegin.o est a en /usr/lib/gcc/x86 64-linux-gnu/crtbegin.o
El comando a ejecutar ser a:
ld -dynamic-linker /lib/ld-linux.so.2 /usr/lib/x86 64-linux-gnu/crt1.o /usr/lib/x86
64-linuxgnu/crti.o /usr/lib/gcc/x86 64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86 64-linuxgnu/5 hola.o
-lgcc -lgcc eh -lc /usr/lib/gcc/x86 64-linux-gnu/5/crtend.o /usr/lib/x86 64-linuxgnu/crtn.o -o
programa
6. Cmo se compila en un solo paso usando gcc?
gcc nombre_programa.c o nombre_ejecutable
7. Explique cada programa del sistema de procesamiento de lenguaje en
breves palabras.
Pre-procesador, acomoda y prepara los archivos y cdigos que se usan en el
programa principal para ser procesados.
Enlazador, recopila archivos ya ensamblados para unirlos en un solo ejecutable
Cargador, sustituye localidades relativas por localidades de memoria real.
8. Escriba su(s) conclusin(es).
El proceso de compilacin de un cdigo fuente para ser ejecutado va ms all
de una lnea de comando, sino ms bien se pasa por ciertos procesos
complejos y que adems estn separados. Cada programa es llamado a
realizar su parte para poder convertir todo el cdigo fuente a cdigo mquina,
checando errores y optimizando. En ocasiones se omiten muchas de las salidas
de estos procesos, pero es importante saber que existen para poder hacer un
anlisis mas especifico y tener una mayor eficiencia.

Вам также может понравиться