dbo:abstract
|
- El Hexadecimal Object File Format es un formato de archivo para la programación de microcontroladores, EPROMs y otros circuitos integrados. Es uno de los formatos más antiguos con esta finalidad. Consiste en un archivo de texto cuyas líneas contienen valores hexadecimales que codifican los datos, y su offset o dirección de memoria. Los distintos tipos de Intel Hex (8-bit, 16-bit y 32-bit) se diferencian en su endianness. Cada línea consta de los siguientes elementos: 1.
* Código de inicio, un símbolo ':' 2.
* Longitud del registro, dos dígitos hexadecimales con la cantidad de bytes del campo de datos. Usualmente son 16 o 32 bytes. 3.
* Dirección, cuatro dígitos hexadecimales en big endian, con la dirección de inicio de los datos. Para direcciones mayores a 0xFFFF se emplean otros tipos de registro. 4.
* Tipo de registro, dos dígitos hexadecimales, de 00 a 05, definen el tipo del campo de datos 5.
* Datos, duplas de dígitos hexadecimales que contienen los datos 6.
* Checksum, dos dígitos hexadecimales con el complemento a dos de la suma de todos los campos anteriores, salvo el ':'. Hay seis tipos de registros:
* 00, Datos, contiene una dirección de 16 bits y los datos correspondientes
* 01, Fin de archivo, no contiene datos y debe estar al final del archivo.
* 02, Dirección Extendida de Segmento, dirección base del segmento, para acceder a direcciones con más de 16 bits. Este valor se desplaza 4 bits a la izquierda (= multiplicar con 16) y se suma a la dirección proporcionada por los registros de datos. Su campo de longitud debe valer 02 y el de dirección 0000.
* 03, Dirección de Comienzo de Segmento, especifica los valores iniciales de los registros CS:IP, para procesadores 80x86. El campo de dirección es 0000, longitud 04 y los datos contienen dos bytes para el segmento de código y otros dos para el instruction pointer
* 04, Dirección Lineal Extendida, permite dirigirse a 32 bits de memoria al contener los 16 bits superiores de la dirección. Su campo de dirección vale 0000 y el de longitud 02.
* 05, Comienzo de Dirección Lineal. Contiene 4 bytes que se cargan en el registro EIP de los procesadores 80386 y superiores. Su campo de dirección vale 0000 y el de longitud 04. 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. (es)
- El Hexadecimal Object File Format es un formato de archivo para la programación de microcontroladores, EPROMs y otros circuitos integrados. Es uno de los formatos más antiguos con esta finalidad. Consiste en un archivo de texto cuyas líneas contienen valores hexadecimales que codifican los datos, y su offset o dirección de memoria. Los distintos tipos de Intel Hex (8-bit, 16-bit y 32-bit) se diferencian en su endianness. Cada línea consta de los siguientes elementos: 1.
* Código de inicio, un símbolo ':' 2.
* Longitud del registro, dos dígitos hexadecimales con la cantidad de bytes del campo de datos. Usualmente son 16 o 32 bytes. 3.
* Dirección, cuatro dígitos hexadecimales en big endian, con la dirección de inicio de los datos. Para direcciones mayores a 0xFFFF se emplean otros tipos de registro. 4.
* Tipo de registro, dos dígitos hexadecimales, de 00 a 05, definen el tipo del campo de datos 5.
* Datos, duplas de dígitos hexadecimales que contienen los datos 6.
* Checksum, dos dígitos hexadecimales con el complemento a dos de la suma de todos los campos anteriores, salvo el ':'. Hay seis tipos de registros:
* 00, Datos, contiene una dirección de 16 bits y los datos correspondientes
* 01, Fin de archivo, no contiene datos y debe estar al final del archivo.
* 02, Dirección Extendida de Segmento, dirección base del segmento, para acceder a direcciones con más de 16 bits. Este valor se desplaza 4 bits a la izquierda (= multiplicar con 16) y se suma a la dirección proporcionada por los registros de datos. Su campo de longitud debe valer 02 y el de dirección 0000.
* 03, Dirección de Comienzo de Segmento, especifica los valores iniciales de los registros CS:IP, para procesadores 80x86. El campo de dirección es 0000, longitud 04 y los datos contienen dos bytes para el segmento de código y otros dos para el instruction pointer
* 04, Dirección Lineal Extendida, permite dirigirse a 32 bits de memoria al contener los 16 bits superiores de la dirección. Su campo de dirección vale 0000 y el de longitud 02.
* 05, Comienzo de Dirección Lineal. Contiene 4 bytes que se cargan en el registro EIP de los procesadores 80386 y superiores. Su campo de dirección vale 0000 y el de longitud 04. 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. (es)
|