Vous êtes sur la page 1sur 2

El formato Intel hex (ihex), generalmente conocido como archivo hex, es un formato para

almacenar cdigo lenguaje mquina en forma hexadecimal. Es ampliamente utilizado para


almacenar programas para ser transferidos a microcontroladores, ROM y EEPROM. Los
compiladores se encargan de convertir los programas escritos en ensamblador, C, etc a su
correspondiente archivo hex, el cual es introducido a los controladores mediante quemadores
o programadores.

El micro controlador entiende lenguaje mquina, el cual consiste en ceros y unos. Para un ser
humano es casi imposible poder comprender el lenguaje mquina, por ello se desarrollan los
programas en compiladores de alto nivel y despus estos mismos convierten el cdigo en
lenguaje mquina.

La estructura que siguen las archivos hex es la siguiente:

:CCAAAATTXXXXX......XXSS

A continuacin se muestra un ejemplo de un archivo hex.

:100000000C942A000C9434000C9434000C943400AA

1. Toda lnea de cdigo empieza con (:)


2. Los primeros dos dgitos CC (Character Count) representan el nmero total de bytes
de datos en cada lnea. En el ejemplo se tiene 10 hexadecimal, es decir 16 bytes en
decimal.
Usualmente son 16 o 32 bytes.
3. Los siguientes 4 dgitos representan la direccin de memoria de inicio donde la
informacin se debe vaciar.
4. Los siguientes dos dgitos indican el tipo de registro y existen 6 posibilidades:
a. Datos (00): Contiene una direccin de 16 bits y los datos correspondientes.
b. Fin de Archivo (01): No contiene datos y debe estar al final del archivo.
c. Direccin extendida de segmento (02): Direccin base del segmento, para
acceder a direcciones con ms de 16 bits. Este valor se desplaza 4 bits a la
izquierda y se suma a la direccin proporcionada por los registros de datos.

Instituto Politcnico Nacional.Pgina 1


d. Direccin de comienzo de segmento (03): Especifica los valores iniciales de
los registros CP: IP. El campo de direccin es 0000 y los datos contienen dos
bytes para el segmente de cdigo y otros dos para el puntero de instruccin.
e. Direccin Lineal extendida (04): Permite dirigirse a 32 bits de memoria al
contener los 16 bits superiores de direccin.
f. Comienzo de direccin lineal (05): Contiene 4 bytes que se cargan en el
registro EIP.
5. Los siguientes dgitos representan los bytes de informacin que van a ser vaciados en
la memoria.
6. SS representa la suma de verificacin de bytes de esa lnea.

El archivo hex es un archivo de texto, por lo que es fcilmente modificado, por ello se puede
detectar una lnea corrupta usando el byte SS.

Existen varios sub formatos:

I8HEX o INTEL 8, de 8 bits.


I16HEX o INTEL 16, de 16 bits; emplea registros 02 y 03 y la endianness de los datos
puede variar.
I32HEX o INTEL 32, de 32 bits; agrega los registros 04 y 05.

Los procesadores Motorola utilizan un formato similar denominado SREC.

(TUTO17, 2012.)

Referencias
TUTO17. (2012.). Engineers Garage. Obtenido de Engineers Garage:
http://www.engineersgarage.com/tutorials/what-is-hex-file-format

Instituto Politcnico Nacional.Pgina 2

Vous aimerez peut-être aussi