LENGUAJE DE PROGRAMACION
INFORMÁTICA
LENGUAJES DE PROGRAMACIÓN
11-B
LUIS CARLOS RODRIGUEZ PACHECO
ILSY
MARTES 5 DE MAYO DEL 2015
EXE
En el ámbito de la informática EXE (de la abreviación del inglés executable, que se
traduce en ejecutable) es una
extensión
que se refiere a un
archivo ejecutable
de código
1
reubicable, es decir, sus direcciones de memoria son relativas.Los sistemas operativos que utilizan de forma nativa este formato son
DOS
,
Microsoft
Windows
,
OS/2
y
ReactOS
.
El formato de archivos EXE fue introducido en
marzo
de
1983
, en la versión 2.0 de
MSDOS
(la versión anterior solo podía ejecutar
archivos COM
, cuyas diferencias con los
EXE se aclaran más adelante) y sigue siendo utilizado en la actualidad en la últimas versiones de Microsoft Windows,
Windows Vista
,
Windows 7
y
Windows 8
.
Formato
Los ficheros EXE constan de una cabecera seguida de los segmentos definidos en el
código fuente. Los datos de la cabecera son utilizados por el sistema operativo para
realizar las inicializaciones necesarias para el correcto funcionamiento del programa, aunque dicha estructura no forma parte de la imagen final del programa en memoria. El
contenido de la cabecera de un fichero EXE es el siguiente:
● Posición 0 (2 bytes): caracteres “MZ” o “ZM” identificativos del formato EXE.
● Posición 2 (2 palabras): tamaño del fichero. La primera palabra es el número de
bytes del último sector. La segunda palabra es el número de sectores que ocupa el fichero (cada sector ocupa 512 bytes). De esta forma, el tamaño del fichero en
bytes se calcula como (nsectores1)*512+nbytes.
● Posición 6 (1 palabra): número de reubicaciones a realizar. Esto es, número de
referencias a segmentos reales que hay que modificar cuando el programa se
cargue en memoria. Éste es el caso del segundo operando de la instrucción MOV
AX, DATOS. Las direcciones de dichas referencias se encuentran disponibles en la denominada tabla de reubicaciones, incluida en la cabecera de un fichero EXE.
● Posición 8 (1 palabra): tamaño de la cabecera en párrafos (1 párrafo = 16 bytes).
● Posición 10 (1 palabra): mínima cantidad de memoria en párrafos requerida por el
programa en adición a lo que ocupa en disco.
● Posición 12 (1 palabra): máxima cantidad de memoria requerida en párrafos.
●Posición 14 (2 palabras): valores iniciales de SS (primera palabra) y SP (segunda
palabra).
● Posición 18 (1 palabra): palabra de comprobación. El DOS no suele utilizarla, de
hecho la herramienta TLINK no la genera.
● Posición 20 (2 palabras): valores iniciales de CS (segunda palabra) e IP (primera
palabra).
● Posición 24 (1 palabra): posición donde comienza la tabla de reubicación. Cada
entrada de la tabla ocupa 4 bytes (desplazamiento y segmento) y contiene la dirección de las palabras a reubicar (a cada una hay que sumarle el valor de
segmento en el que se cargue el programa).
● Posición 26 (1 palabra): número de overlay. Es 0 cuando se trata de un programa
principal.
● Posición 2861: valores desconocidos (dependientes del compilador).
Programación
Existen dos formas de crear un archivo de tipo EXE. Una es usando un
compilador
que pueda crear este tipo de archivos (lo cual no significa específicamente que tiene que ser
para la plataforma donde se ejecutará, véase
Compilador cruzado
). La otra forma es
ensamblando un código fuente del lenguaje
Assembler
y luego enlazando el
código
objeto
resultante de la tarea anterior.
Fuera del ámbito de la programación también existen programas que generan ejecutables EXE para tareas específicas. Ejemplos de estos son el compresor
WinZip
, el
Microsoft
Powerpoint
y el
Adobe Flash
.
Para revisar el funcionamiento de un programa se realiza la tarea llamada
depuración
(en
inglés: debugging).
A continuación se detallan la realización estas tareas para programas de tipo EXE.
Compilado, Ensamblado y enlazado
[
editar...
Regístrate para leer el documento completo.