C/Visual C - Ficheros EXE

 
Vista:

Ficheros EXE

Publicado por Pau Labarta (14 intervenciones) el 10/07/2001 13:50:28
Un fichero EXE es un fichero codigo objeto, binario ? Es solo una curiosidad, gracias y hasta otra
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ficheros EXE

Publicado por Fabián Sierra Carvajal (50 intervenciones) el 11/07/2001 05:25:19
Rara tu pregunta... En fin, un fichero .exe consiste esencialmente de código objeto + una cabecera para el sistema operativo.
En detalle, cuando compilas un programa, se genera código objeto (.obj). Este código objeto contiene direcciones memoria (por ejemplo, "goto Escape;", es decir, "salte a la dirección de la etiqueta "Escape"), pero no son válidas, pues no se sabe en qué lugar de la memoria el sistema operativo cargará el programa. Cualdo enlazas (link) el código objeto para formar un ejecutable (.exe), el enlazador convierte esas direcciones de memoria en direcciones relativas, es decir, en desplazamientos con respecto a la dirección de inicio del programa cuando éste sea cargado; y le añade una cabecera que el sistema operativo necesita para (entre otras cosas) identificar el programa como un ejecutable y resolver las direcciones de memoria. Bueno, el enlazador hace bastantes cosas más, pero eso es lo básico.
Si abres un ejecutable con el Bloc de Notas, veras que comienza con MZ. Esa es la marca de un ejecutable para el DOS.
Un fichero .com no contiene la cabecera, es decir, consta de código máquina "puro" con referencias relativas a memoria. Como no contiene la cabecera, no puede exceder de 64k, porque sin la cabecera el sistema operativo no puede resolver direcciones que apunten fuera del segmento de código del programa.
Si necesitas más información, escríbeme.
¡Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar