stringtranslate.com

Intel hexagonal

El formato de archivo de objeto hexadecimal Intel , formato Intel hex o Intellec Hex es un formato de archivo que transmite información binaria en forma de texto ASCII , [10] haciendo posible almacenar en medios no binarios como cintas de papel , tarjetas perforadas , etc., para visualizarse en terminales de texto o imprimirse en impresoras orientadas a líneas . [11] El formato se usa comúnmente para programar microcontroladores , EPROM y otros tipos de dispositivos lógicos programables y emuladores de hardware . En una aplicación típica, un compilador o ensamblador convierte el código fuente de un programa (como en C o lenguaje ensamblador ) en código de máquina y lo genera en un objeto o archivo ejecutable en formato hexadecimal (o binario). En algunas aplicaciones, el formato hexadecimal de Intel también se utiliza como formato de contenedor que contiene paquetes de flujo de datos . [12] Las extensiones de archivo comunes utilizadas para los archivos resultantes son .HEX [1] o .H86. [5] [6] Luego, un programador lee el archivo HEX para escribir el código de máquina en una PROM o lo transfiere al sistema de destino para su carga y ejecución. [11] [13] Existen varias herramientas para convertir archivos entre formato hexadecimal y binario (es decir, HEX2BIN ) y viceversa (es decir, OBJHEX, OH, OHX, BIN2HEX).

Historia

El formato hexadecimal de Intel se diseñó originalmente para los sistemas de desarrollo de microcomputadoras Intellec de Intel [14] : 10–11  (MDS) en 1973 para cargar y ejecutar programas desde cinta de papel . También se utilizó para especificar el contenido de la memoria de Intel para la producción de ROM , [15] que anteriormente tenía que codificarse en el formato BNPF (Begin-Negative-Positive-Finish), mucho menos eficiente. [14] : 11  En 1973, el "grupo de software" de Intel estaba formado únicamente por Bill Byerly y Kenneth Burgett, y Gary Kildall como consultor externo que hacía negocios como Microcomputer Applications Associates (MAA) y fundaba Digital Research en 1974. [16] [17 ] [18] [9] A partir de 1975, el formato fue utilizado por los sistemas Intellec Serie II ISIS-II que admitían unidades de disquete, con archivos que utilizaban la extensión de archivo HEX. [19] Muchos dispositivos de programación PROM y EPROM aceptan este formato.

Formato

Intel HEX consta de líneas de texto ASCII separadas por caracteres de avance de línea o de retorno de carro , o ambos. Cada línea de texto contiene caracteres hexadecimales en mayúsculas que codifican varios números binarios. Los números binarios pueden representar datos, direcciones de memoria u otros valores, dependiendo de su posición en la línea y del tipo y longitud de la línea. Cada línea de texto se llama registro .

Estructura de registro

Un registro (línea de texto) consta de seis campos (partes) que aparecen en orden de izquierda a derecha: [11]

  1. Código de inicio , un carácter, dos puntos ASCII ' : '. Todos los caracteres que preceden a este símbolo en un registro deben ignorarse. [15] [5] [20] [21] [22] [23] De hecho, las primeras versiones de la especificación incluso pedían un mínimo de 25 caracteres NUL para preceder al primer registro y seguir al último, debido a la Los orígenes del formato son un formato de cinta de papel que requería algo de entrada y salida de cinta para su manipulación. [15] [24] [21] [22] Sin embargo, como esta era una parte poco conocida de la especificación, no todo el software escrito lo hace correctamente. Permite almacenar otra información relacionada en el mismo archivo (e incluso en la misma línea), [15] [23] una facilidad utilizada por varias utilidades de desarrollo de software para almacenar tablas de símbolos o comentarios adicionales, [25] [15] [21] [26] [9] [27] y extensiones de terceros que utilizan otros caracteres como código de inicio como los dígitos ' 0 '..' 9 ' de Intel [28] y Keil , [26] ' $ ' de Mostek , [29 ] [30] o ' ! ', ' @ ', ' # ', ' \ ', ' & ' y ' ; ' por TDL . [30] [31] Por convención, ' // ' se utiliza a menudo para comentarios. [32] [33] Ninguna de estas extensiones puede contener caracteres ':' como parte de la carga útil.
  2. Recuento de bytes , dos dígitos hexadecimales (un par de dígitos hexadecimales), que indican el número de bytes (pares de dígitos hexadecimales) en el campo de datos. El recuento máximo de bytes es 255 (0xFF). 8 (0x08), [9] 16 (0x10) [9] y 32 (0x20) son recuentos de bytes comúnmente utilizados. No todo el software soporta recuentos superiores a 16. [2]
  3. Dirección , cuatro dígitos hexadecimales, que representan el desplazamiento de la dirección de memoria inicial de 16 bits de los datos. La dirección física de los datos se calcula sumando este desplazamiento a una dirección base previamente establecida, permitiendo así el direccionamiento de la memoria más allá del límite de 64 kilobytes de direcciones de 16 bits. La dirección base, que por defecto es cero, se puede cambiar mediante varios tipos de registros. Las direcciones base y los desplazamientos de direcciones siempre se expresan como valores big endian .
  4. Tipo de registro (consulte los tipos de registro a continuación), dos dígitos hexadecimales,00a05, definiendo el significado del campo de datos.
  5. Datos , una secuencia de n bytes de datos, representada por 2 n dígitos hexadecimales. Algunos registros omiten este campo ( n es igual a cero). El significado y la interpretación de los bytes de datos dependen de la aplicación. (Los datos de 4 bits tendrán que almacenarse en la mitad inferior o superior de los bytes, es decir, un byte contiene solo un elemento de datos direccionable. [15] )
  6. Suma de comprobación , dos dígitos hexadecimales, un valor calculado que se puede utilizar para verificar que el registro no tenga errores.

Leyenda de color

Como ayuda visual, los campos de los registros Intel HEX están coloreados a lo largo de este artículo de la siguiente manera:

  Código de inicio  recuento de bytes  DIRECCIÓN  Tipo de registro  Datos  Suma de comprobación

Cálculo de suma de comprobación

El byte de suma de verificación de un registro es el complemento a dos del byte menos significativo (LSB) de la suma de todos los valores de bytes decodificados en el registro que precede a la suma de verificación. Se calcula sumando los valores de bytes decodificados y extrayendo el LSB de la suma (es decir, la suma de comprobación de datos), y luego calculando el complemento a dos del LSB (por ejemplo, invirtiendo sus bits y sumando uno).

Por ejemplo, en el caso del registro : 03 0030 00 02337A 1E , la suma de los valores de bytes decodificados es 03+00+30+00+02+33+7A= E2, que tiene valor LSB E2. El complemento a dos de E2es1E , que es el byte de suma de verificación que aparece al final del registro.

La validez de un registro se puede verificar calculando su suma de verificación y verificando que la suma de verificación calculada sea igual a la suma de verificación que aparece en el registro; Se indica un error si las sumas de verificación difieren. Dado que el byte de suma de verificación del registro es el complemento a dos (y, por lo tanto, el inverso aditivo ) de la suma de verificación de datos, este proceso se puede reducir a sumar todos los valores de bytes decodificados, incluida la suma de verificación del registro, y verificar que el LSB de la suma sea cero. Cuando se aplica al ejemplo anterior, este método produce el siguiente resultado: 03+00+30+00+02+33+7A+1E = 100, que tiene valor LSB 00.

Terminadores de línea de texto

Los registros Intel HEX suelen estar separados por uno o más caracteres de terminación de línea ASCII para que cada registro aparezca solo en una línea de texto. Esto mejora la legibilidad al delimitar visualmente los registros y también proporciona relleno entre registros que se puede utilizar para mejorar la eficiencia del análisis de la máquina . Sin embargo, los caracteres de terminación de línea son opcionales, ya que ' : ' se utiliza para detectar el inicio de un registro. [15] [5] [24] [20] [21] [22] [23]

Los programas que crean registros HEX normalmente utilizan caracteres de terminación de línea que se ajustan a las convenciones de sus sistemas operativos . Por ejemplo, los programas de Linux utilizan un único carácter LF ( avance de línea , valor hexadecimal 0A) para terminar las líneas, mientras que los programas de Windows utilizan un CR ( retorno de carro , valor hexadecimal 0D) seguido de un LF.

Tipos de registros

Intel HEX tiene seis tipos de registros estándar: [11]

Se han utilizado otros tipos de registros para las variantes, incluidos06(mensajes 'parpadeantes'/contenedor de protocolo de transmisión) por Wayne y Layne, [34] 0A(inicio de bloque),0B(final del bloque),0C(datos rellenados),0D(datos personalizados) y0E(otros datos) de la BBC / Micro:bit Educational Foundation , [35] y81(datos en el segmento de código ),82(datos en segmento de datos ),83(datos en el segmento de pila ),84(datos en segmento extra ),85( dirección de párrafo para segmento de código absoluto),86(dirección de párrafo para segmento de datos absolutos),87(dirección de párrafo para el segmento de pila absoluto) y88(dirección del párrafo para segmento extra absoluto) por Digital Research . [6] [20]

Formatos con nombre

El formato original de cinta de papel Intellec Hex de 4 bits/8 bits y el formato de tarjeta perforada por computadora Intellec Hex en 1973/1974 admitían solo un tipo de registro.00. [36] [37] [25] Esto se amplió alrededor de 1975 [ ¿cuándo? ] para admitir también el tipo de registro01. [15] A veces llamado formato hexadecimal simbólico , [38] podría incluir un encabezado opcional que contenga una tabla de símbolos para la depuración simbólica , [25] [28] [26] [9] se ignoran todos los caracteres en un registro que precede a los dos puntos. [15] [5]

Alrededor de 1978 [ ¿cuándo? ] , Intel presentó los nuevos tipos de registros02y03(para agregar soporte para el espacio de direcciones segmentado de los entonces nuevos procesadores 8086/8088 ) en su formato Intellec Hex extendido . [ ¿ cuando? ]

A veces se utilizan nombres especiales para indicar los formatos de archivos HEX que emplean subconjuntos específicos de tipos de registros. Por ejemplo:

Ejemplo de archivo

Este ejemplo muestra un archivo que tiene cuatro registros de datos seguidos de un registro de fin de archivo:

: 10 0100 00 214601360121470136007EFE09D21901 40 : 10 0110 00 2146017E17C20001FF5F160021480119 28 : 10 0120 00 194E7923462396577 8239EDA3F01B2CA A7 : 10 0130 00 3F0156702B5E712B722B732146013421 C7 : 00 0000 01FF

  Código de inicio  recuento de bytes  DIRECCIÓN  Tipo de registro  Datos  Suma de comprobación

Variantes

Además de la propia extensión de Intel, varios terceros también han definido variantes y extensiones del formato hexadecimal de Intel, incluido Digital Research (como en el llamado "formato hexadecimal de Digital Research" [6] [20] ), Zilog , Mostek , [ 29] [30] TDL , [30] [31] Texas Instruments , Microchip , [39] [40] c't , Wayne y Layne, [34] y BBC / Micro:bit Educational Foundation (con su "Formato Hexadecimal Universal " [35] ). Estos pueden tener información sobre puntos de entrada del programa y contenidos de registros , un orden de bytes intercambiados en los campos de datos, valores de relleno para áreas no utilizadas, bits de fusión y otras diferencias.

El formato hexadecimal de Digital Research para procesadores 8086 admite información de segmentos agregando tipos de registros para distinguir entre código, datos, pila y segmentos adicionales. [5] [6] [20]

La mayoría de los ensambladores para CP/M-80 (y también XASM09 para Motorola 6809 ) no usan el tipo de registro 01h para indicar el final de un archivo, sino que usan una entrada de tipo de datos de longitud cero 00h. [41] [1] Esto facilita la concatenación de múltiples archivos hexadecimales. [42] [43] [1]

Texas Instruments define una variante en la que las direcciones se basan en el ancho de bits de los registros de un procesador, no en bytes.

Microchip define variantes INTHX8S [44] (INHX8L, [1] INHX8H [1] ), INHX8M, [44] [1] [45] INHX16 [44] (INHX16M [1] ) e INHX32 [46] para sus microcontroladores PIC .

También se sabe que el macroensamblador cruzado AS de Alfred Arnold, [1] el emulador 8051 SIM51 de Werner Hennig-Roleff , [26] y el convertidor cruzado BINTEL de Matthias R. Paul [47] definen extensiones al formato hexadecimal de Intel.

Ver también

Referencias

  1. ^ abcdefghi Arnold, Alfred "Alf" (2020) [1996, 1989]. "6.3. P2HEX". Macroensamblador AS - Manual de usuario. V1.42. Traducido por Arnold, Alfred "Alf"; Hilse, Stefan; Kanthak, Stephan; Sellke, Oliver; De Tomasi, Vittorio. Aquisgrán, Alemania. Archivado desde el original el 28 de febrero de 2020 . Consultado el 28 de febrero de 2020 . […] Para los microcontroladores PIC , el interruptor -m <0..3> permite generar las tres variantes diferentes del formato Intel Hex. El formato 0 es INHX8M que contiene todos los bytes en orden bajo-alto. Las direcciones se vuelven el doble de grandes porque los PIC tienen un espacio de direcciones orientado a palabras que incrementa las direcciones solo en una por palabra. […] Con el formato 1 (INHX16M), los bytes se almacenan en su orden natural. Este es el formato que utiliza Microchip para sus propios dispositivos de programación. Formato 2 (INHX8L) resp. 3 (INHX8H) divide las palabras en sus resp. inferiores. bytes superiores. […] Desafortunadamente, en la literatura se encuentran declaraciones diferentes sobre la última línea de un archivo Intel-Hex. Por tanto, P2HEX conoce tres variantes diferentes que pueden seleccionarse […] :00000001FF […] :00000001 […] :0000000000 […] Por defecto se utiliza la variante 0, que parece ser la más común. […] Si el nombre del archivo de destino no tiene una extensión, se supone que tiene una extensión HEX. […]
  2. ^ ab "AR#476 PROMGen - Descripción de los formatos de archivo PROM/EEPROM: MCS, EXO, HEX y otros" . Xilinx . 2010-03-08. Objeto hexadecimal Intel MCS-86: código de formato de archivo 88. Archivado desde el original el 3 de marzo de 2020 . Consultado el 3 de marzo de 2020 .
  3. ^ Sabnis, Abhishek (4 de febrero de 2011). "Cómo convertir un archivo .out a .int, .hex, .a43". Foro de Code Composer Studio . Instrumentos Texas . Archivado desde el original el 20 de octubre de 2023 . Consultado el 20 de octubre de 2023 . El programador TI-gang necesita formato de archivo .int, .hex, .a43.
  4. ^ abc Schuldt, Michael (2018). "modo-intel-hexadecimal". github.com . Archivado desde el original el 24 de octubre de 2020 . Consultado el 20 de octubre de 2023 . De forma predeterminada, este modo está habilitado para archivos con extensión .a90, .hex, .a43 o .ihx.
  5. ^ abcdef "3.1. Formato de archivo hexadecimal Intel 8086". Sistema operativo CP/M-86 - Guía del sistema (PDF) (segunda impresión, 1ª ed.). Pacific Grove, California, EE. UU.: Investigación digital . Junio ​​de 1981. págs. 15-16. Archivado (PDF) desde el original el 28 de febrero de 2020 . Consultado el 28 de febrero de 2020 . pag. 16: […] Lo siguiente se genera únicamente desde ASM-86: 81 igual que 00, los datos pertenecen al segmento de código […] 82 igual que 00, los datos pertenecen al segmento de datos […] 83 igual que 00, los datos pertenecen a la pila segmento […] 84 igual que 00, los datos pertenecen a un segmento adicional […] Dirección de 85 párrafos para el segmento de código absoluto […] Dirección de 86 párrafos para el segmento de datos absolutos […] Dirección de 87 párrafos para el segmento de pila absoluta […] Dirección de 88 párrafos para segmento adicional absoluto […] Se ignoran todos los caracteres que preceden a los dos puntos de cada registro. […](17 páginas)
  6. ^ abcde "Apéndice C. Formato de salida hexadecimal ASM-86". CP/M-86 - Sistema operativo - Guía del programador (PDF) (3 ed.). Pacific Grove, California, EE. UU.: Investigación digital . Enero de 1983 [1981]. págs. 97-100. Archivado (PDF) desde el original el 27 de febrero de 2020 . Consultado el 27 de febrero de 2020 . Págs. 97–99: […] El formato Intel es idéntico al formato definido por Intel para el 8086 . El formato Digital Research es casi idéntico al formato Intel, pero agrega información de segmento a registros hexadecimales. Los resultados de cualquier formato se pueden ingresar en GENCMD , pero el formato de Investigación Digital proporciona automáticamente la identificación del segmento. Un segmento es la unidad más pequeña de un programa que se puede reubicar. […] Es en la definición de los tipos de registro 00 y 02 donde el formato hexadecimal de Digital Research difiere del de Intel. Intel define un valor para el tipo de registro de datos y el tipo de dirección de segmento. Digital Research identifica cada registro con el segmento que lo contiene. […] 00H para datos pertenecientes a los 8086 segmentos […] 81H para datos pertenecientes al segmento CODE […] 82H para datos pertenecientes al segmento DATA […] 83H para datos pertenecientes al segmento STACK […] 84H para datos perteneciente al segmento EXTRA […] 02H para todos los registros de direcciones de segmento […] 85H para una dirección de segmento absoluto CODE […] 86H para una dirección de segmento DATOS […] 87H para una dirección de segmento STACK […] 88H para un segmento EXTRA DIRECCIÓN […][1] (1+viii+122+2 páginas)
  7. ^ ab Ramos, Rubens (2010) [2008]. "intel-hex-mode.el --- Modo para archivos Intel Hex" . Consultado el 20 de octubre de 2023 .
  8. ^ abc "El desensamblador interactivo: formatos de archivo hexadecimales". Rayos hexagonales . 2006. Archivado desde el original el 1 de marzo de 2020 . Consultado el 1 de marzo de 2020 .[2]
  9. ^ abcdef Roche, Emmanuel (1 de abril de 2020). "El formato de archivo Intel HEX". Francia: Grupo de noticias : comp.os.cpm. INTELHEX.WS4. Archivado desde el original el 8 de diciembre de 2021 . Consultado el 8 de diciembre de 2021 . […] el formato de archivo Intel HEX puede contener mucho más que "bytes de datos". Siempre que las líneas no comiencen con dos puntos (":"), pueden contener cualquier cosa que desee. […] Una vez vi un gran archivo HEX […] Contenía, al principio, el código fuente de un programa PL/M , seguido, al final, por el archivo HEX resultante producido por el compilador PL/M. […] Encontré otro archivo HEX que contenía varias líneas de comentarios, no al principio ni al final, sino separando varias líneas de "registros absolutos". […] era de un "Simulador (Intel) 8008 ". Entonces, al comienzo de su uso, era bien sabido que los archivos HEX podían contener explicaciones. […] bajo CP/M o cualquier sistema de 8 bits 64K, queda un caso: "Direcciones de página". Desde CP/M, es estándar mostrar las direcciones de memoria usando el sistema hexadecimal […] como dijimos para los archivos BIN/COM, las direcciones de memoria son 0000/0100. Observe que esas direcciones de memoria se pueden escribir 00-00/01-00 […] para decir: Página cero, dirección cero / Página uno, dirección cero. […] la dirección de memoria más alta en una computadora de 8 bits y 64K es FFFF […] Página FF, dirección FF […] las direcciones más bajas están en la página cero (o 00) y las direcciones más altas están en la página FF. […] Los tipos de archivos CP/M tienen 3 letras de largo, se podrían usar tipos de archivos del formato P00-PFF […] para indicar en qué dirección de memoria cargar el archivo HEX. […] Noté que la mayoría de mis direcciones terminaban en "00", por lo que la dirección de carga podría reducirse a la dirección de la página, que […] podría colocarse dentro del tipo de archivo […]
  10. ^ ab "Apéndice D. Formatos de archivo de objetos absolutos MCS-86: formato de archivo de objetos hexadecimal". 8086 Family Utilities: guía del usuario para sistemas de desarrollo basados ​​en 8080/8085 (PDF) . Revisión E (A620/5821 6K DD ed.). Santa Clara, California, Estados Unidos: Intel Corporation . Mayo de 1982 [1980, 1978]. págs. D-8-D-13. Número de pedido 9800639-04. Archivado (PDF) desde el original el 29 de febrero de 2020 . Consultado el 29 de febrero de 2020 .
  11. ^ Especificación de formato de archivo de objeto hexadecimal abcd. Revisión A. Intel Corporation . 1998 [1988-01-06] . Consultado el 23 de julio de 2019 .[3][4][5][6][7] (11 páginas)
  12. ^ "Documentación en formato de archivo hexadecimal de programación LT: programación en circuito". Analog Devices, Inc. / Tecnología lineal . 2021. Archivado desde el original el 7 de marzo de 2021 . Consultado el 11 de diciembre de 2021 .
  13. ^ "General: formato de archivo Intel Hex". BRAZO Keil . ARM Alemania GmbH . 2018-05-07 [2012]. KA003292. Archivado desde el original el 27 de febrero de 2020 . Consultado el 6 de septiembre de 2017 .[8]
  14. ^ ab Crosby, Kip (enero-marzo de 1994). "El amanecer del micro: Intellecs de Intel" (PDF) . El motor analítico . Asociación de Historia de la Computación de California. 1 (3): 10-14. ISSN  1071-6351. Archivado (PDF) desde el original el 17 de octubre de 2023 . Consultado el 17 de octubre de 2023 . Págs. 10-11: […] el Intel Intellec 8 […] apareció por primera vez en algún momento de 1972 o 1973, dos años o más antes del Altair 8800, a menudo acreditado como el "primer microordenador" según las historias estándar […] Intel sostiene que el 8 Mod 8 se produjo por primera vez en 1973 y se suspendió en 1975. Tony Duell tiene una placa de CPU 8 Mod 80 fechada en 1972, y el 8 Mod 8 y el 4 Mod 40 figuran en el Catálogo de datos Intel publicado en febrero de 1976, por lo que el El período de producción puede haber sido algo más largo. (Los documentos pertinentes de Intel deben leerse detenidamente porque los nombres MCS4, MCS40, MCS8 y MCS80 se utilizaron casi indiscriminadamente para referirse a conjuntos de chips, computadoras o sistemas completos).(52 páginas) (NB. Este artículo no menciona Intel Hex, pero menciona específicamente que el sistema Intellec de Intel se introdujo oficialmente en 1973, pero existen algunas unidades con fecha de 1972).
  15. ^ abcdefghi "Capítulo 6. Hoja de datos de los componentes del sistema de microcomputadora - EPROM y ROM: I. Instrucciones de programación de PROM y ROM - B1. Formato de cinta de papel Intellec Hex / C1. Formato de tarjeta perforada para computadora Intellec Hex". Manual del usuario del MCS-80 (con introducción al MCS-85). Santa Clara, California, Estados Unidos: Intel Corporation . Octubre de 1977 [1975]. págs. 6-75–6-78. 98-153D . Consultado el 27 de febrero de 2020 . pag. 6-76: […] En el formato Intel Intellec Hex, un campo de datos puede contener datos de 8 o 4 bits. Se deben utilizar dos caracteres hexadecimales ASCII para representar datos de 8 y 4 bits. En el caso de datos de 4 bits, sólo uno de los caracteres tiene significado y debe especificarse en el formulario de pedido de Intel PROM/ROM. […] Antes del primer campo de datos y después del último campo de datos debe haber una longitud de encabezado/avance de al menos 25 caracteres nulos. Se pueden colocar comentarios (excepto dos puntos) en la cabecera de la cinta . […] Si los datos son de 4 bits, entonces el dígito de orden superior o inferior representa los datos y el otro dígito del par puede ser cualquier dígito hexadecimal ASCII. […][9][10] (468 páginas) (NB. Este manual también describe un " Formato de cinta de papel BPNF ", un "Formato de cinta de papel hexagonal no Intellec" y un "Formato de tarjeta perforada por computadora PN".)
  16. ^ Kildall, Gary Arlen (enero de 1980). "La historia de CP/M, la evolución de una industria: el punto de vista de una persona". Revista del Dr. Dobb sobre calistenia y ortodoncia informática . 5 (1): 6–7. #41. Archivado desde el original el 24 de noviembre de 2016 . Consultado el 3 de junio de 2013 . […] Los programas habían sido escritos y probados por el grupo de software de Intel, formado por otras dos personas y yo, y estábamos listos para la máquina real. […]
  17. ^ Kildall, Gary Arlen (2 de agosto de 2016) [1993]. Kildall, Scott ; Kildall, Kristin (eds.). Conexiones informáticas: personas, lugares y eventos en la evolución de la industria de las computadoras personales (Manuscrito, parte 1). Familia Kildall. Archivado (PDF) desde el original el 17 de noviembre de 2016 . Consultado el 17 de noviembre de 2016 .(NB. La Parte 2 no se publica por razones de privacidad familiar).
  18. ^ Burgett, Kenneth "Ken" (10 de noviembre de 2017). "Desarrollo del sistema operativo Intel ISIS: una entrevista con Ken Burgett". Archivado desde el original el 24 de noviembre de 2023 . Consultado el 25 de noviembre de 2023 .[11][12]
  19. ^ Feichtinger, Herwig (1987). "1.8.5. Lochstreifen-Datenformate: Das Intel-Hex-Format" [1.8.5. Formatos de datos de cinta de papel]. Arbeitsbuch Mikrocomputer [ Libro de trabajo sobre microcomputadoras ] (en alemán) (2 ed.). Múnich, Alemania: Franzis-Verlag GmbH . págs. 240-243 [243]. ISBN 3-7723-8022-0.
  20. ^ abcde "4.3 Formato de archivo hexadecimal Intel". Sistema operativo CP/M concurrente: guía de referencia del programador (PDF) (1 ed.). Pacific Grove, California, EE. UU.: Digital Research Inc. Enero de 1984. págs. 4-9–4-12. Archivado (PDF) desde el original el 11 de diciembre de 2021 . Consultado el 11 de diciembre de 2021 . Págs. 4-11–4-12: […] Lo siguiente se genera únicamente desde ASM-86: 81 igual que 00, los datos pertenecen al segmento de código […] 82 igual que 00, los datos pertenecen al segmento de datos […] 83 igual que 00, los datos pertenecen al segmento de pila […] 84 igual que 00, los datos pertenecen al segmento adicional […] * dirección de 85 párrafos para el segmento de código absoluto […] * dirección de 86 párrafos para el segmento de datos absolutos […] * párrafo 87 dirección para el segmento de pila absoluto […] * Dirección de 88 párrafos para el segmento adicional absoluto […] * 85, 86, 87 y 88 son Extensiones de investigación digital. […] Se ignoran todos los caracteres que preceden a los dos puntos de cada registro. […](346 páginas) (NB. Este manual marca solo los tipos 85, 86, 87 y 88 como extensiones de Digital Research, como si los tipos 81, 82, 83, 84 no lo fueran).
  21. ^ abcd "2.8. Formatos de microprocesador, 2.8.1. Requisitos de entrada: formato Intel Intellec 8/MDS. Seleccione el código 83". Guía del operador sobre capacidades de E/S serie de programadores de E/S de datos: paquete de formato de traducción (PDF) . Revisión C. Corporación Data I/O . Octubre de 1980. p. 2-10. 055-1901. Archivado (PDF) desde el original el 1 de marzo de 2020 . Consultado el 1 de marzo de 2020 . pag. 2-10: […] Entrada […] Este espacio se puede utilizar para avance de línea, retorno de carro o comentarios. […] Salida […] 2) Cada línea termina con un avance de línea no imprimible, retornos de carro y valores nulos. […](1+ii+19 páginas)
  22. ^ abc "Formato Intel Intellec 8/MDS, código 83". Formatos de archivos de traducción (PDF) . Corporación de E/S de datos . 1987-09-03. págs. 22, 26–27, 52–53, 54. Archivado (PDF) desde el original el 28 de julio de 2021 . Consultado el 1 de marzo de 2020 . págs. 22, 26, 52: […] Retorno de carro no imprimible, avance de línea y nulos determinados por el recuento de nulos […](56 páginas)
  23. ^ abc "Apéndice B: Formato Intel Hex e Intel Extended Hex - Formato común B.1". Manual del controlador Fujitsu Semiconductor: Manual del kit de vinculación Softune de la familia FR/F2MC para V3 (PDF) . Fujitsu Limitada . 2001, págs. 319–525 [320–321]. Archivado (PDF) desde el original el 12 de diciembre de 2021 . Consultado el 12 de diciembre de 2021 . pag. 321: […] (g) Generalmente, se agrega un código de control (como CR y LF). Los datos de este campo se omiten hasta que aparece el carácter inicial ":" de (a). Dado que los campos (a), (b), (c), (d) y (f) siempre existen, la longitud mínima de un registro es de 11 bytes y la longitud máxima es de 521 bytes. […](4+x+350 páginas)
  24. ^ ab "1.6.4 PIP". Manual del sistema operativo CP/M (Primera edición impresa). Pacific Grove, California, EE. UU.: Investigación digital . Julio de 1982 [1976]. págs. 17-23 . Consultado el 12 de diciembre de 2021 . Págs. 19-21: […] PIP realiza una función especial si el destino es un archivo de disco con tipo "HEX" (un archivo de código de máquina con formato hexadecimal de Intel ) y la fuente es un dispositivo periférico externo, como un papel. lector de cintas . En este caso, el programa PIP verifica que el archivo fuente contenga un archivo hexadecimal formado correctamente, con valores hexadecimales legales y registros de suma de verificación. Cuando se encuentra un registro de entrada no válido, PIP informa un mensaje de error en la consola y espera una acción correctiva. Generalmente es suficiente abrir el lector y volver a pasar una sección de la cinta (tire de la cinta hacia atrás unas 20 pulgadas). Cuando la cinta está lista para la relectura, se escribe un único retorno de carro en la consola y PIP intentará otra lectura. Si la posición de la cinta no se puede leer correctamente, el usuario continúa la lectura (escribiendo un valor después del mensaje de error) e ingresa el registro manualmente con el programa ED después de que se construye el archivo del disco. Para mayor comodidad, PIP permite ingresar el final del archivo desde la consola si el archivo fuente es un dispositivo RDR:. En este caso, el programa PIP lee el dispositivo y monitorea el teclado. Si se escribe ctl-Z en el teclado, la operación de lectura finaliza normalmente. […] […] Enviar 40 nulos al dispositivo de punzonado ; Copie el archivo X.ASM en la perforadora, seguido de un final de archivo (ctl-Z) y 40 caracteres nulos más. […] […] Transferencia de datos HEX: se verifica que todos los datos tengan el formato de archivo hexadecimal Intel adecuado. Los caracteres no esenciales entre registros hexadecimales se eliminan durante la operación de copia. Se solicitará a la consola una acción correctiva en caso de que se produzcan errores. […] […] Ignore los registros ":00" en la transferencia de archivos de formato hexadecimal Intel (el parámetro I establece automáticamente el parámetro H). […] […] Primero copie X.HEX al dispositivo PUN: e ignore el registro final ":00" en X.HEX; continúe la transferencia de datos leyendo Y.ZOT, que contiene registros HEX, incluidos los registros ":00" que contiene. […]PIP PUN:=NUL:,X.ASM,EOF:,NUL:HIPIP PUN:=X.HEX[i],Y.ZOT[h][13] (6+250 páginas)
  25. ^ abc "Apéndice A: Un programa de muestra en PL/M: Cinta de objetos hexadecimales". MCS-8 Una guía para la programación PL/M (PDF) . Rev 1 (impreso en septiembre de 1974, edición). Santa Clara, California, Estados Unidos: Intel Corporation . 15 de marzo de 1974 [septiembre de 1973]. pag. 102. MCS180-0774-1K, MCS280-0974-1K. Archivado (PDF) desde el original el 29 de enero de 2022 . Consultado el 18 de mayo de 2022 . pag. 102:
        1 CARRY 05714
        2 ZERO 05715
        3 SIGN 05716
        4 PARITY 05717
        5 MEMORY 06000
       23 SQUAREROOT 04003
    […]
       83 MONITORUSES 05766
     $
    ****************************************
    :1008000044520A2E0B36D0F930FA31CF30D730F9B6
    […]
    :100AF0000936F4C730D70401C8C20C0031F930F808
    :040B0000445E0AFF46
    ****************************************
    :0000000000
     $
    (1+i+100+1+11+1 páginas) (NB. Muestra un ejemplo que contiene separadores basados ​​en asteriscos y un encabezado con sangría espacial con nombres de símbolos que serán procesados ​​por el comando HEXOBJ de Intel ISIS así como por INTERP/ 8 o INTERP/80 para la depuración simbólica . Este encabezado opcional no está documentado como parte de los formatos hexadecimal o BNPF de Intel , sino en los manuales de programación en ensamblador y PL/M de Intel que producen dichas tablas de símbolos).
  26. ^ abcd Hennig-Roleff, Werner (1 de febrero de 1993) [1988]. "HEX.DOC: formato Intel-HEX". SIM51 . 1.04 (en alemán). Archivado desde el original el 11 de agosto de 2017 . Consultado el 8 de diciembre de 2021 . […] Beim Absolut-Hex Konvertierprogramm von Keil können opcional […] Symbol-Informationen in den Hex-File aufgenommen werden. La información de símbolos se guarda en la entrada de archivos, antes que ':'. La información de símbolos sind allerdings nicht sehr aussagekräftig, da nicht unterschieden wird zwischen Modul-Name, CODE, XDATA, DATA, IDATA, BIT, NUMBER. Para que los símbolos incluidos no se utilicen caracteres ASCII. Pro Zeile ist 1 Symbol angeschrieben und zwar in der Form: "0 SymbolName Wert" […][14][15] (NB. Esta es una versión anterior de SIM51, el software y la documentación se mantuvieron hasta 1996.)
  27. ^ G., Georg (5 de septiembre de 2021) [4 de septiembre de 2021]. "Archivo hexadecimal flasheado". Microcontrolador y electrónica digital. mikrocontroller.net (en alemán) . Consultado el 23 de noviembre de 2023 . […] Información de depuración en Intel con un "$" an. Dann kamen der Name des Symbols und die Adresse. Kommentare hatten als erstes Zeichen ein ";". […] El ASM48 bajo ISIS-2 produce solche Hexfiles, […] el ASM86 también. […]
  28. ^ ab "Apéndice A. Ejemplo de formato de listado / Apéndice C. Formato de archivo de objeto hexadecimal". Manual de lenguaje ensamblador 2920 (PDF) . Santa Clara, California, Estados Unidos: Intel Corporation . Agosto de 1979. págs. A-3, C-1 – C-2. Número de pedido 9800987-01. Archivado (PDF) desde el original el 26 de noviembre de 2023 . Consultado el 26 de noviembre de 2023 . pag. C-1: […] El código está formateado en bytes de datos hexadecimales. El archivo contiene la representación ASCII de los bytes de datos hexadecimales. El código objeto en sí está precedido por una tabla de símbolos. Estas dos partes se pueden cargar o guardar juntas o por separado. La tabla de símbolos es una serie de registros terminados con un signo de dólar. Cada registro contiene tres campos separados por uno o más espacios ASCII: […] un campo numérico […] un campo de etiqueta que contiene la representación ASCII de un símbolo del programa fuente […] un campo de dirección que contiene la dirección hexadecimal asignada al símbolo [… ] La tabla de símbolos termina con un registro cuyo primer carácter que no está en blanco es un signo de dólar. El código objeto […] sigue la tabla de símbolos […] Cada uno de estos registros o líneas físicas son seis campos lógicos de diferente longitud en caracteres o cuadros. […](90 páginas) (NB. El Intel 2920 fue un procesador de señales digitales lanzado en 1979).
  29. ^ ab Formaniak, Peter G.; Leitch, David (julio de 1977). "Un estándar de software de microprocesador propuesto". BYTE : la pequeña revista de sistemas . Foro Técnico. vol. 2, núm. 7. Peterborough, New Hampshire, EE.UU.: Byte Publications, Inc. págs. 34, 62–63. arca:/13960/t32245485 . Consultado el 6 de diciembre de 2021 .(3 páginas) (NB. Describe una extensión del formato hexadecimal de Intel de Mostek ).
  30. ^ abcd Ogdin, Carol Anne; Colvin, Neil; Pittman, Tom; Tubb, Philip (noviembre de 1977). "Formatos de código de objetos reubicables". BYTE: la revista de sistemas pequeños . Foro Técnico. Peterborough, New Hampshire, EE.UU.: Byte Publications, Inc. 2 (11): 198–205. arca:/13960/t59c88b4h, arca:/13960/t3kw76j24 . Consultado el 6 de diciembre de 2021 . (8 páginas) (NB. Además de otros, se describe una extensión incompatible del formato hexadecimal de Intel utilizado por Technical Design Labs (TDL).)
  31. ^ ab Kreidl, Günter (junio de 1981). "Reubicación: formato TDL". Hardware. Revista Nascom - Zeitschrift für Anwender des NASCOM 1 o NASCOM 2 (en alemán). Germersheim, Alemania: Verlag NASCOM Journal, MK-Systemtechnik. 2 (6): 12-14 [12]. Archivado desde el original el 1 de diciembre de 2021 . Consultado el 11 de diciembre de 2021 .(20 páginas) (NB. Muestra una variante del formato TDL , que a su vez es una variante del formato hexadecimal de Intel).
  32. ^ Rüger, Stefan M. (16 de junio de 2022). "Proporcione el formato de archivo I: Intel HEX con comentarios que ignoren los errores de suma de comprobación". AVRDUDO . Archivado desde el original el 25 de noviembre de 2023 . Consultado el 25 de noviembre de 2023 .(NB. Opción de comentario de AVRDUDE: puedo producir incorrectamente caracteres ":" como parte del volcado hexadecimal ).
  33. ^ Toro, Hans Eirik; Decano, Brian S.; Rüger, Stefan M.; Wunsch, Jörg (15 de julio de 2023). "AVRDUDE: un programa para descargar/cargar flash del microcontrolador AVR, EEPROM y más para AVRDUDE" (PDF) . Versión 7.2. Archivado (PDF) desde el original el 23 de noviembre de 2023 . Consultado el 23 de noviembre de 2023 . pag. 12: […] I […] Intel Hex con comentarios sobre la descarga y tolerancia de errores de suma de comprobación en la carga […](66 páginas)
  34. ^ ab Beckler, Matthew L. (25 de julio de 2016) [19 de julio de 2016]. "Blinky Grid: flujo de bits ópticos en serie". Discurso . Minneapolis, Minnesota, EE.UU.: Wayne y Layne, LLC. Archivado desde el original el 11 de diciembre de 2021 . Consultado el 11 de diciembre de 2021 .
  35. ^ ab "Especificación del formato hexadecimal universal micro:bit: especificación para el formato hexadecimal universal micro:bit". micro:bit . 0.4.0. Fundación Educativa Micro:bit . 2021-01-26 [2020]. Archivado desde el original el 14 de agosto de 2021 . Consultado el 8 de diciembre de 2021 . [16][17] (NB. Esto representa una especie de formato de archivo hexadecimal grueso ).
  36. ^ Manual del operador del sistema de microcomputadora Intellec 8 . Corporación Intel . Noviembre de 1973.
  37. ^ "Apéndice D. Formato de cinta de programa hexadecimal". Manual del operador de Intellec 8/MOD 80 . Intel . Junio ​​de 1974. 98-003A. […] Cuadros 7,8: Tipo de registro […] Dos caracteres ASCII. Actualmente (1974), todos los registros son del tipo 0. Este campo está reservado para futuras ampliaciones […][18]
  38. ^ Catálogo de herramientas de desarrollo 1988 (PDF) . Corporación Intel . 1988, págs. 25–26, 30–32. Número de pedido 280199-004. Archivado (PDF) desde el original el 26 de noviembre de 2023 . Consultado el 26 de noviembre de 2023 .(46 páginas)
  39. ^ "Microcontroladores PIC: formato de archivo PIC hexadecimal". Blog de electrónica de Kanda . Canolafan, Llanafan, Aberystwyth, Gales, Reino Unido: Embedded Results Ltd. 26 de abril de 2012. Archivado desde el original el 16 de agosto de 2021 . Consultado el 11 de diciembre de 2021 .
  40. ^ "Utilidad 15.3 XC16-BIN2HEX - 15.3.3 Archivos de entrada/salida". Ensamblador, vinculador y utilidades MPLAB XC16: guía del usuario (PDF) . Microchip Technology Inc. 2018 [2013]. págs. 240-241. ISBN 978-1-5224-2828-2. DS50002106D. Archivado (PDF) desde el original el 22 de enero de 2019 . Consultado el 5 de diciembre de 2023 . pag. 240: […] Debido a que el formato de archivo hexadecimal de Intel está orientado a bytes y la PC de 16 bits no, las secciones de la memoria del programa requieren un tratamiento especial. Cada palabra de programa de 24 bits se amplía a 32 bits mediante la inserción del llamado "byte fantasma". Cada dirección de memoria del programa se multiplica por 2 para obtener una dirección de byte. Por ejemplo, una sección ubicada en 0x100 en la memoria del programa se representará en el archivo hexadecimal como 0x200. Considere la siguiente fuente en lenguaje ensamblador: […] ; archivo test.s […] .section foo,code,address(0x100) […] .pword 0x112233 […] Se producirá el archivo […], con el siguiente contenido: […] :020000040000fa […] :040200003322110096 […] :00000001FF […] el registro de datos (línea 2) tiene una dirección de carga de 0200, mientras que el código fuente especifica la dirección 0x100. […]t los datos se representan en formato "little-endian", lo que significa que el byte menos significativo aparece primero. El byte fantasma aparece al final, justo antes de la suma de comprobación. […](277 páginas)
  41. ^ Kildall, Gary Arlen (febrero de 1978) [1976]. "Una técnica sencilla para la reubicación estática de código de máquina absoluto". Revista del Dr. Dobb sobre calistenia y ortodoncia informática . Compañía de Computación del Pueblo . 3 (2): 10–13 (66–69). ISBN 0-8104-5490-4. #22 arca:/13960/t8hf1g21p . Consultado el 19 de agosto de 2017 .[19][20][21]. Presentado originalmente en: Kildall, Gary Arlen (1977) [22-24 de noviembre de 1976]. "Una técnica simple para la reubicación estática de código de máquina absoluto". Escrito en la Escuela Naval de Postgrado , Monterey, California, EE.UU. En Tito, Harold A. (ed.). Registro de la conferencia: Décima Conferencia Anual de Asilomar sobre circuitos, sistemas y computadoras: artículos presentados del 22 al 24 de noviembre de 1976. Conferencia de Asilomar sobre señales, sistemas y computadoras . Asilomar Hotel and Conference Grounds, Pacific Grove, California, EE.UU.: Western Periodicals Company. págs. 420–424. ISSN  1058-6393 . Consultado el 6 de diciembre de 2021 .(609 páginas)
  42. ^ Zschocke, Jörg (noviembre de 1987). "Nicht nur Entwicklungshilfe - Descarga para Einplatinencomputer am Beispiel des EPAC-09: Intel-Hex-Format". c't - magazin für computertechnik (en alemán). vol. 1987, núm. 11. Verlag Heinz Heise GmbH & Co. KG . págs. 198, 200, 202-203, [200]. ISSN  0724-8679. […] Den Vorspann beschließt un Byte, dessen Wert den des Blockes angibt: 0 = Datenblock, 1 = Endblock. Auf diese Unterscheidung kann jedoch verzichtet werden, wenn sich ein Endblock auch durch eine Blocklänge gleich Null eindeutig kennzeichnen läßt. (Por lo tanto, coloque el ensamblador principal en CP/M , además del XASM09; el Typbyte es nulo). […][22] (NB. XASM09 es un ensamblador Motorola 6809 ).
  43. ^ Antes, James E. (24 de febrero de 1989). "Re: Preguntas sobre formato Intel hexadecimal (*.HEX)". Grupo de noticias : comp.os.cpm . Consultado el 27 de febrero de 2020 .
  44. ^ abc "Especificación de programación PIC16C5X 5.0 - Formatos de datos hexadecimales PIC16C5X: 5.1. Formato hexadecimal Intellec dividido de 8 bits (INHX8S) / 5.2. Formato hexadecimal Intellec fusionado de 8 bits (INHX8M) / 5.3. Formato hexadecimal de 16 bits / 5.4.8 -Formato de palabra de bits / 5.5.Formato de palabra de 16 bits". Libro de datos de microchips (edición de 1994). Microchip Technology Inc. Abril de 1994. págs. 3-10–3-11, 9-10, 9-15, 9-17, 9-21, 9-23, 9-27. DS00018G . Consultado el 28 de febrero de 2020 . […] Los ensambladores para PIC16C5X pueden producir archivos de objetos PIC16C5X en varios formatos. Un programador PIC16C5X debe poder aceptar y enviar datos en al menos uno de los siguientes formatos. Se prefiere el formato combinado de 8 bits (INHX8M). […] formato […] INHX8S […] produce dos archivos hexadecimales de 8 bits. Un archivo contendrá los pares de dirección/datos para los 8 bits de orden superior y el otro archivo contendrá los 8 bits de orden inferior. Las extensiones de archivo para el código objeto serán '.obl' y '.obh' para archivos de orden bajo y alto […] formato […] INHX8M […] produce un archivo hexadecimal de 8 bits con una combinación de bytes bajos y bytes altos. Dado que cada dirección sólo puede contener 8 bits en este formato, todas las direcciones se duplicarán. Las extensiones de archivo para el código objeto serán '.obj' […] formato […] INHX16 […] produce un archivo hexadecimal de 16 bits. La extensión de archivo para el código objeto será '.obj'. […][23][24]
  45. ^ Barba, Brian (2016) [2010]. "Formato de registro HEX del Microchip INHX8M". Tecnologías lúcidas . Archivado desde el original el 28 de febrero de 2020 . Consultado el 28 de febrero de 2020 .
  46. ^ Barba, Brian (2016) [2013]. "Formato de registro HEX del Microchip INHX32". Tecnologías lúcidas . Archivado desde el original el 28 de febrero de 2020 . Consultado el 28 de febrero de 2020 .
  47. ^ Paul, Matías R. (1992). BINTEL: Binär-Image-Konverter mit Intel-Hex-Unterstützung - Bedienungsanleitung [ Convertidor de imágenes binarias con soporte Intel Hex - Manual de usuario ] (en alemán).(NB. Como consecuencia del uso de la herramienta para procesar, analizar, comparar, dividir, cortar, rellenar, combinar, reubicar o convertir imágenes de firmware binarias (por ejemplo, para o desde una o más ROM) con deliberadamente adhesivo (fijo "1" o "0"), datos invertidos, omitidos ("no me importa"), interconectados o intercambiados o líneas de dirección (como a veces se usan para facilitar el enrutamiento de PCB de buses paralelos o por razones de ofuscación para dificultar el desmontaje ), este convertidor de imágenes binarias admitía varias extensiones del formato Intel Hex.)

Otras lecturas

enlaces externos