Intel HEX
A data format for storing binary data as ASCII text. It consists of a sequence of records, which consist of the following fields:
- start code (
:
) - byte count (1 byte)
- address (2 bytes)
- record type (1 byte)
- data (
00
): the data field contains n bytes, where n is the byte count - EOF (
01
): the final record in the file; the data field is empty - extended segment address (
02
): the data field contains 2 bytes which are multiplied by 16 and used as the base of subsequent record addresses - start segment address (
03
): the data field contains 4 bytes specifying the start execution address for 80×86 processors, where the first two bytes are the CS value and the last two bytes are the IP - extended linear address (
04
): the data field contains 2 bytes to be used as the high-order bytes (big-endian) of 32-bit addresses for subsequent records - start linear address (
05
): the data field contains 4 bytes representing the big-endian 32-bit start address
- data (n bytes), possibly empty
- checksum (1 byte), calculated as the two's complement of the sum of the record contents
All values are stored as ASCII hex digits.