Intel HEX és un format d'arxiu per a la programació de microcontroladors, EPROMs i altres circuits integrats. El format es va introduir als anys 70 i està entre els formats més vells amb aquesta finalitat.[cal citació] Consisteix en un arxiu de text les línies del qual contenen valors hexadecimals que codifiquen les dades, i el seu offset o adreça de memòria.

Infotaula de format de fitxerHEX (Intel)
Tipusformat de fitxer Modifica el valor a Wikidata
Extensióhex Modifica el valor a Wikidata
Més informació
Wiki del format de fitxerIntel_HEX Modifica el valor a Wikidata

Els diferents tipus d'Intel Hex (8-bit, 16-bit i 32-bit) es diferencien en el seu endianness.

Cada línia consta dels següents elements:

  1. Codi d'inici, un símbol ':'
  2. Longitud del registre, dos dígits hexadecimals amb la quantitat de bytes del camp de dades. Usualment són 16 o 32 bytes.
  3. Adreça, quatre dígits hexadecimals en big endian, amb l'adreça d'inici de les dades. Per adreces majors a 0xFFFF s'empren altres tipus de registre.
  4. Tipus de registre, dos dígits hexadecimals, de 00 a 05, defineixen el tipus del camp de dades.
  5. Dades, conjunt de dígits hexadecimals que contenen les dades.
  6. Checksum, dos dígits hexadecimals amb el complement a dos de la suma de tots els camps anteriors, excepte el ':'.

Hi ha sis tipus de registres:

  • 00, Dades, conté una adreça de 16 bits i les dades corresponents
  • 01, Fi d'arxiu, no conté dades i ha d'estar al final de l'arxiu.
  • 02, Adreça Estesa de Segment, adreça basi del segment, per accedir a adreces amb més de 16 bits. Aquest valor es desplaça 4 bits a l'esquerra (= multiplicar amb 16) i se sumeixi a l'adreça proporcionada pels registres de dades. El seu camp de longitud ha de valer 02 i el d'adreça 0000.
  • 03, Adreça de Començament de Segment, especifica els valors inicials dels registres CS:IP, per a processadors 80x86. El camp d'adreça és 0000, longitud 04 i les dades contenen dos bytes per al segment de codi i altres dos pel instruction pointer
  • 04, Adreça Lineal Estesa, permet dirigir-se a 32 bits de memòria en contenir els 16 bits superiors de l'adreça. El seu camp d'adreça val 0000 i el de longitud 02.
  • 05, Començament d'adreça lineal. Conté 4 bytes que es carreguen en el registre EIP dels processadors 80386 i superiors. El seu camp d'adreça val 0000 i el de longitud 04.

Existeixen diversos sub-formats:

  • I8HEX o INTEL 8, de 8 bits
  • I16HEX o INTEL 16, de 16 bits. Empra registres 02 i 03, i la endianness de les dades pot variar.
  • I32HEX o INTEL 32, de 32 bits. Agrega els registres 04 i 05.

Els processadors Motorola utilitzen un format similar, denominat SREC.

Exemple modifica

:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF

Codi d'inici Longitud Adreça Tipus de registre Dades Checksum

Enllaços externs modifica