Tal ves angelmoi123 se refiere a como se interpreta el archivo .hex que es generado por el compilador.
Este archivo tiene un formato llamado intel.
El siguiente es un extracto de la pagina
mpasmFormato INTEL hexadecimal de 8 bits
Este formato produce un archivo hexadecimal de 8 bit con la combinación byte bajo / byte alto. De esta manera cada dirección puede contener sólo 8 bits en este formato por lo que todas las direcciones se doblan.
Cada registro de datos (cada línea) comienza con un prefijo de 9 caracteres y acaba con 2 caracteres de checksum.
Cada registro de datos tiene el formato siguiente:
:BBAAAATTHHHH... .HHHCC
donde:
BB: dos digitos en hexadecimal que representan el número de bytes de datos que aparecen en la línea.
AAAA: cuatro digitos en hexadecimal que representan la dirección de arranque de los datos del registro.
TT: dos digitos que siempre serán '00' salvo al final del archivo de datos que serán '01'.
HH: dos digitos en hexadecimal, con la información en la forma byte bajo / byte alto.
CC: checksum de dos digitos en hexadecimal son el complemento a dos de la suma de todos bytes precedentes en el registro.
Ejemplo:
Parte de e001.lst:
0000 3007 movlw 0x07 ;Carga primer sumando en W
0001 3E08 addlw 0x08 ;Suma W con segundo sumando
0002 0090 movwf 0x10 ;Almacena el resultado
e001.hex completo:
:020000040000FA
:060000000730083E9000ED
:00000001FF
Observemos la 2 línea:
:060000000730083E9000ED
:06000000
06 6 bytes: 07, 30, 08, 3E, 90, 00.
0000 dirección 0
00 al no ser el registro final
730083E9000ED
07 30 es 3007
08 3E es 3E08
90 00 es 0090
ED es el checksum
espero te alla sido util con esto puedes desifrar los .hex