Extensiones de nombre de archivo | De uso general:.hex , [1] .mcs , [2] .int , [3] .ihex , .ihe , .ihx [4] Específico de la plataforma: .h80 , .h86 , [5] [6] .a43 , [7] [4] .a90 [7] [4] Dividido, en bancos o paginado: .hxl – .hxh , [8] .h00 – .h15 , .p00 – .pff [9] Binario o hexadecimal Intel: .obj , .obl , [8] .obh , [8] .rom ,.eep |
---|
El formato de archivo de objeto hexadecimal de Intel , formato hexadecimal de Intel o Intellec Hex es un formato de archivo que transmite información binaria en forma de texto ASCII , [10] lo que hace posible almacenarlo en medios no binarios como cinta de papel , tarjetas perforadas , etc., para mostrarlo en terminales de texto o imprimirlo 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 lenguaje C o 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 usa como un formato contenedor que contiene paquetes de datos de flujo . [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).
El formato hexadecimal de Intel fue diseñado originalmente para los sistemas de desarrollo de microcomputadoras Intellec [14] : 10–11 (MDS) de Intel en 1973 con el fin de cargar y ejecutar programas desde cintas de papel . También se utilizó para especificar contenidos de memoria a Intel para la producción de ROM , [15] que anteriormente tenían que ser codificados en el formato BNPF (Begin-Negative-Positive-Finish) mucho menos eficiente. [14] : 11 En 1973, el "grupo de software" de Intel consistía únicamente en Bill Byerly y Kenneth Burgett, y Gary Kildall como consultor externo haciendo negocios como Microcomputer Applications Associates (MAA) y fundando Digital Research en 1974. [16] [17] [18] [9] A partir de 1975, el formato fue utilizado por los sistemas Intellec Series II ISIS-II que soportaban unidades de disquete, con archivos que usaban la extensión de archivo HEX. [19] Muchos dispositivos de programación PROM y EPROM aceptan este formato.
Intel HEX consta de líneas de texto ASCII separadas por caracteres de salto de línea o 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, según su posición en la línea y el tipo y la longitud de la línea. Cada línea de texto se denomina registro .
Un registro (línea de texto) consta de seis campos (partes) que aparecen en orden de izquierda a derecha: [11]
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 Conteo de bytes DIRECCIÓN Tipo de registro Datos Suma de comprobación
El byte de suma de comprobació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 anterior a la suma de comprobación. Se calcula sumando los valores de bytes decodificados y extrayendo el LSB de la suma (es decir, la suma de comprobación de los datos) y, a continuación, 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 E2
es1E , que es el byte de suma de comprobación que aparece al final del registro.
La validez de un registro se puede comprobar calculando su suma de comprobación y verificando que la suma de comprobación calculada sea igual a la suma de comprobación que aparece en el registro; se indica un error si las sumas de comprobación difieren. Dado que el byte de suma de comprobación del registro es el complemento a dos (y, por lo tanto, el inverso aditivo ) de la suma de comprobación de datos, este proceso se puede reducir a sumar todos los valores de bytes decodificados, incluida la suma de comprobació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 un valor LSB 00
.
Los registros Intel HEX suelen estar separados por uno o más caracteres de terminación de línea ASCII, de modo que cada registro aparece 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 el ' : ' se utiliza para detectar el comienzo de un registro. [15] [5] [24] [20] [21] [22] [23]
Los programas que crean registros HEX suelen utilizar 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 solo carácter LF ( salto 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.
Intel HEX tiene seis tipos de registros estándar: [11]
Código hexadecimal | Tipo de registro | Descripción | Ejemplo |
---|---|---|---|
00 | Datos | El recuento de bytes especifica la cantidad de bytes de datos en el registro. En el ejemplo, se muestran 0B.(once) bytes de datos. La dirección inicial de 16 bits para los datos (en el ejemplo, las direcciones que comienzan en0010) y los datos (61,64,64,72,65,73,73,20,67,61,70). | : 0B 0010 00 6164647265737320676170 A7 |
01 | Fin del archivo | Debe aparecer exactamente una vez por archivo en el último registro del archivo. El recuento de bytes es 00., el campo de dirección normalmente es0000y se omite el campo de datos. | : 00 0000 01FF |
02 | Dirección de segmento extendida | El número de bytes siempre es 02, el campo de dirección (normalmente0000) se ignora y el campo de datos contiene una dirección base de segmento de 16 bits. Esta se multiplica por 16 y se suma a cada dirección de registro de datos subsiguiente para formar la dirección de inicio de los datos. Esto permite direccionar hasta un mebibyte (1048576 bytes) de espacio de direcciones. | : 02 0000 02 1200 E.U. |
03 | Dirección del segmento de inicio | Para procesadores 80x86, especifica la dirección de ejecución inicial. El recuento de bytes siempre es 04., el campo de dirección es0000Los dos primeros bytes de datos son el valor CS y los dos últimos son el valor IP . La ejecución debe comenzar en esta dirección. | : 04 0000 03 00003800 C1 |
04 | Dirección lineal extendida | Permite direccionamiento de 32 bits (hasta 4 GiB ). El conteo de bytes siempre es 02y el campo de dirección se ignora (normalmente0000). Los dos bytes de datos (big endian) especifican los 16 bits superiores de la dirección absoluta de 32 bits para todos los tipos subsiguientes.00registros; estos bits de dirección superior se aplican hasta el siguiente04registro. La dirección absoluta de un tipo00El registro se forma combinando los 16 bits de dirección superiores del más reciente.04registro con los 16 bits de dirección bajos de la00registro. Si un tipo00El registro no está precedido por ningún tipo04registra entonces sus 16 bits de dirección superiores por defecto a 0000. | : 02 0000 04 0800 F2 |
05 | Dirección lineal de inicio | El número de bytes siempre es 04, el campo de dirección es0000Los cuatro bytes de datos representan un valor de dirección de 32 bits (big endian). En el caso de las CPU que lo admiten, esta dirección de 32 bits es la dirección en la que debe comenzar la ejecución. | : 04 0000 05 000000CD 2A |
Se han utilizado otros tipos de registros para variantes, incluidos06(mensajes 'blinky' / contenedor de protocolo de transmisión) por Wayne y Layne, [34] 0A(inicio de bloque),0B(fin del bloque),0 °C(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 el segmento de datos ),83(datos en el segmento de pila ),84(datos en segmento extra ),85( dirección de párrafo para el 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 absoluta) y88(dirección del párrafo para el segmento adicional absoluto) por Digital Research . [6] [20]
El formato de cinta de papel Intellec Hex original de 4 bits/8 bits y el formato de tarjeta perforada de computadora Intellec Hex de 1973/1974 solo admitían 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 contiene una tabla de símbolos para depuración simbólica , [25] [28] [26] [9] todos los caracteres en un registro que preceden a los dos puntos se ignoran. [15] [5]
Alrededor de 1978 [ ¿cuándo? ] , Intel introdujo los nuevos tipos de registros.02y03(para agregar soporte para el espacio de direcciones segmentado de los entonces nuevos procesadores 8086/8088 ) en su formato Intellec Hex extendido . [ ¿cuándo? ]
A veces se utilizan nombres especiales para indicar los formatos de archivos HEX que emplean subconjuntos específicos de tipos de registros. Por ejemplo:
Este ejemplo muestra un archivo que tiene cuatro registros de datos seguidos de un registro de final de archivo:
: 10 0100 00 214601360121470136007EFE09D21901 40 : 10 0110 00 2146017E17C20001FF5F160021480119 28 : 10 0120 00 194E792346239657 78239EDA3F01B2CA A7 : 10 0130 00 3F0156702B5E712B722B732146013421 C7 : 00 0000 01FF
Código de inicio Conteo de bytes DIRECCIÓN Tipo de registro Datos Suma de comprobación
Además de la propia extensión de Intel, varios terceros también han definido variantes y extensiones del formato hexadecimal de Intel, incluidos 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 los puntos de entrada del programa y el contenido de los registros , un orden de bytes intercambiado 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 utilizan el tipo de registro 01h para indicar el final de un archivo, sino que utilizan 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 donde las direcciones se basan en el ancho de bits de los registros de un procesador, no en bytes.
Microchip define las 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 ensamblador cruzado de macros AS de Alfred Arnold, [1] el emulador 8051 SIM51 de Werner Hennig-Roleff , [26] y el conversor cruzado BINTEL de Matthias R. Paul [47] definen extensiones para el formato hexadecimal de Intel.
Este artículo contiene demasiadas citas o citas demasiado largas . ( octubre de 2023 ) |
[…] Para los microcontroladores PIC , el modificador -m <0..3> permite generar las tres variantes diferentes del formato Intel Hex. El formato 0 es INHX8M, que contiene todos los bytes en un orden Lo-Hi. 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 Microchip utiliza para sus propios dispositivos de programación. El formato 2 (INHX8L) o el 3 (INHX8H) dividen las palabras en sus bytes inferiores o superiores. […] Desafortunadamente, en la literatura se encuentran diferentes afirmaciones sobre la última línea de un archivo Intel-Hex. Por lo tanto, P2HEX conoce tres variantes diferentes que se pueden seleccionar […] :00000001FF […] :00000001 […] :0000000000 […] De manera predeterminada, 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. […]
El programador de TI-gang necesita el formato de archivo .int, .hex, .a43.
De forma predeterminada, este modo está habilitado para archivos con extensión .a90, .hex, .a43 o .ihx.
[…] Los siguientes son solo resultados de 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
[…] 85
dirección de párrafo
para segmento de código absoluto […] 86 dirección de párrafo para segmento de datos absoluto […] 87 dirección de párrafo para segmento de pila absoluto […] 88 dirección de párrafo para segmento adicional absoluto […] Se ignoran todos los caracteres que preceden a los dos puntos para cada registro. […]
(17 páginas)
[…] 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 los registros hexadecimales. La salida de cualquiera de los formatos se puede ingresar a
GENCMD
, pero el formato Digital Research 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 cada tipo de registro de datos y para el tipo de dirección de segmento. Digital Research identifica cada registro con el segmento que lo contiene. […] 00H para datos pertenecientes a todos los segmentos 8086 […] 81H para datos pertenecientes al
segmento CODE
[…] 82H para datos pertenecientes al
segmento DATA
[…] 83H para datos pertenecientes al
segmento STACK
[…] 84H para datos pertenecientes al
segmento EXTRA
[…] 02H para todos los registros de dirección de segmento […] 85H para una dirección de segmento absoluta CODE […] 86H para una dirección de segmento DATA […] 87H para una dirección de segmento STACK […] 88H para una dirección de segmento EXTRA […]
[1] (1+viii+122+2 páginas)
[…] el formato de archivo
Intel
HEX puede contener mucho más que los "bytes de datos". Siempre que las líneas no comiencen con dos puntos (":), pueden contener todo lo que desee. […] Una vez vi un archivo HEX grande […] 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 que separaban varias líneas de "registros absolutos". […] era de un "Simulador (Intel)
8008
". Así, al principio de su uso, era bien sabido que los archivos HEX podían contener explicaciones. […] bajo
CP/M
o cualquier sistema de 8 bits y 64 K, 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. […] 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 64 K 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 archivo CP/M tienen 3 letras de longitud, se podrían usar tipos de archivo 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 con "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 […]
[…] 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 considerado como el "primer microordenador" por las historias estándar […]
Intel
mantiene que el 8 Mod 8 se produjo por primera vez en 1973 y se discontinuó en 1975. Tony Duell tiene una placa de CPU 8 Mod 80 con fecha de 1972, y tanto el 8 Mod 8 como el 4 Mod 40 están incluidos en el Catálogo de datos de Intel publicado en febrero de 1976, por lo que el período real de producción puede haber sido algo más largo. (Los documentos pertinentes de Intel deben leerse con atención porque los nombres MCS4, MCS40, MCS8 y MCS80 se usaron casi indiscriminadamente para referirse a chipsets, 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 presentó oficialmente en 1973, pero existen algunas unidades con fecha de 1972).
[…] 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, solo uno de los caracteres es significativo y se debe especificar en el formulario de pedido de PROM/ROM Intel. […] Antes del primer campo de datos y después del último campo de datos debe haber una longitud de cabecera/final de al menos 25 caracteres nulos. Los comentarios (excepto los dos puntos) se pueden colocar 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 de computadora PN").
[…] El grupo de software de Intel, formado por mí y otras dos personas, había escrito y probado los programas, y estábamos listos para la máquina real. […]
[…] Los siguientes son solo resultados de 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 Extra
[…] *85
dirección de párrafo
para Segmento de Código absoluto […] *86 dirección de párrafo para Segmento de Datos absoluto […] *87 dirección de párrafo para Segmento de Pila absoluto […] *88 dirección de párrafo para Segmento Extra absoluto […] * 85, 86, 87 y 88 son Extensiones de Investigación Digital. […] Se ignoran todos los caracteres que preceden a los dos puntos para cada registro. […]
(346 páginas) (NB: Este manual marca sólo los tipos 85, 86, 87 y 88 como extensiones de Digital Research, como si los tipos 81, 82, 83, 84 no lo fueran).
[…] Entrada […] Este espacio se puede utilizar para saltos de línea, retornos de carro o comentarios. […] Salida […] 2) Cada línea termina con saltos de línea no imprimibles, retornos de carro y nulos. […](1+ii+19 páginas)
[…] Retorno de carro no imprimible, avance de línea y valores nulos determinados por el recuento de valores nulos […](56 páginas)
[…] (g) Generalmente, se agrega un código de control (como CR y LF). Los datos de este campo se omiten hasta que aparezca 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)
[…]
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
lector de cinta de papel
. En este caso, el programa PIP comprueba que el archivo de origen contenga un archivo hexadecimal correctamente formado, con valores hexadecimales legales y registros de suma de comprobació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. Por lo general, es suficiente abrir el lector y volver a ejecutar una sección de la cinta (retirar la cinta unas 20 pulgadas). Cuando la cinta está lista para la relectura, se escribe un
retorno de carro
en la consola y PIP intentará otra lectura. Si no se puede leer correctamente la posición de la cinta, el usuario continúa la lectura (escribiendo un retorno 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 de origen 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. […]
[…] Envíe 40
nulos
al dispositivo
de perforación
; copie el archivo X.ASM a la perforación, seguido de un final de archivo (ctl-Z) y 40 caracteres nulos más. […]
[…] Transferencia de datos HEX: todos los datos se verifican para verificar que tengan el formato de archivo hexadecimal Intel correcto. Los caracteres no esenciales entre los registros hexadecimales se eliminan durante la operación de copia. Se le solicitará a la consola que tome una acción correctiva en caso de que ocurran errores. […]
[…] Ignore los registros ":00" en la transferencia del archivo de formato hexadecimal de Intel (el parámetro I establece automáticamente el parámetro H). […]
[…] Primero copie X.HEX al dispositivo PUN: e ignore el registro ":00" final en X.HEX; continúe la transferencia de datos leyendo Y.ZOT, que contiene registros HEX, incluidos todos los registros ":00" que contiene. […]
[13] (6+250 páginas)PIP PUN:=NUL:,X.ASM,EOF:,NUL:
H
I
PIP PUN:=X.HEX[i],Y.ZOT[h]
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 sangrado con espacios 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 depuración simbólica . Este encabezado opcional no está documentado como parte de los formatos hexadecimales o BNPF de Intel sino en los manuales de programación de ensamblador y PL/M de Intel que producen dichas tablas de símbolos).[…] 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).
[…] 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. […]
[…] El código está formateado en bytes hexadecimales de datos. El archivo contiene la representación ASCII de los bytes hexadecimales de datos. 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 por un signo de dólar. Cada registro contiene tres campos separados por uno o más espacios ASCII: […] un campo de número […] 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 a la tabla de símbolos […] Cada uno de estos registros o líneas físicas son seis campos lógicos de longitud variable en caracteres o marcos. […](90 páginas) (NB. El Intel 2920 fue un procesador de señal digital lanzado en 1979.)
[…] I […] Intel Hex con comentarios sobre la descarga y la tolerancia de errores de suma de comprobación en la carga […](66 páginas)
[…] Cuadros 7,8: Tipo de registro […] Dos caracteres ASCII. Actualmente (1974), todos los registros son de tipo 0. Este campo está reservado para futuras ampliaciones […][18]
[…] Debido a que el formato de archivo hexadecimal de Intel está orientado a bytes, y la PC de 16 bits no, las secciones de memoria de programa requieren un tratamiento especial. Cada palabra de programa de 24 bits se extiende a 32 bits insertando un denominado "byte fantasma". Cada dirección de memoria de programa se multiplica por 2 para obtener una dirección de byte. Por ejemplo, una sección que se encuentra en 0x100 en la memoria de programa se representará en el archivo hexadecimal como 0x200. Considere la siguiente fuente de lenguaje ensamblador: […] ; archivo test.s […] .section foo,code,address(0x100) […] .pword 0x112233 […] Se generará 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 especificó 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)
[…] 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 un 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 ).
[…] Los ensambladores para el PIC16C5X pueden producir archivos de objeto 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 de 8 bits fusionados (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 inferior y superior […] formato […] INHX8M […] produce un archivo hexadecimal de 8 bits con una combinación de byte bajo/byte alto. Dado que cada dirección solo 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 del archivo para el código objeto será '.obj'. […][23][24]
Formato de objeto de dirección de palabra hexadecimal Intel […] Este formato es idéntico al formato de objeto hexadecimal Intel, excepto que la dirección de cada línea de código de objeto se divide por dos, lo que la convierte en una dirección de palabra (palabra de 16 bits). Todos los demás campos son idénticos. He aquí un ejemplo: […] :180800000102030405060708090A0B0C0D0E0F101112131415161718AC […] :02080C00191AA3 […] :00000001FF […](32 páginas)