Il file HEX al microscopio: la struttura dei file in formato INHX8M.
Il formato dei file HEX
Il formato HEX di Intel (INHX8M) è quello generato dalla maggior parte dei compilatori ed è idoneo ad essere scaricato direttamente nella memoria del micro. Il formato prevede che il file sia composto da righe aventi la seguente formattazione:
:BBAAAATTHHHH……HHCC
Ciascuna linea inizia con i due punti (scritti in formato ASCII).
BB sono due byte che indicano il numero di bytes contenuti nella riga. Nel caso del PIC tali byte vanno da 0x00 a 0x10.
AAAA è un indirizzo esadecimale di quattro byte e rappresenta l’indirizzo a partire dal quale verranno scritti i dati che seguono.
TT indica il tipo di record:
- 00 - I dati contenuti nella riga sono bytes di dati
- 01 - Ultima riga del file
- 02 - Extended segment address record (non usato)
- 03 - Start segment address record (non usato)
- 04 - Extended linear address record (non usato)
- 05 - Start linear address record (non usato)
HH sono due cifre esadecimali (8 bit) che rappresentano i bytes dei dati;
CC è il checksum: la somma di tutti i bytes più il byte di checksum, esclusi i riporti, deve dare come risultato un multiplo di 256. Ad esempio, il codice seguente per un PIC16F877
ORG 0x17A
MOVLW 0xFF
MOVWF PORTB
BSF STATUS, RP0
MOVWF TRISA CLRF TRISB
BCF STATUS, RP0
viene tradotto nella linea di file HEX di figura 1.

Un semplice ed interessante articolo dove si mette in evidenza la struttura hex. Si puo’ notare come piu’ righe di codice vengono compattate in una riga hex. Sarebbe bello lavorare sul file hex anziche’ su quello assembler/C 🙂
Quando ero piccolo facevo piccoli programmi direttamente in linguaggio macchina (solo codici esadecimale) col Commodore 64. Il mio cervello era molto lucido…..
Si potrebbero creare utility che analizzassero i file HEX dei PIC.
Bell’articolo.