You are on page 1of 3

Intel HEX

Da Wikipdia, a enciclopdia livre

Intel HEX um formato de arquivo que transmite informaes binrias em ASCII forma de texto. comumente
utilizada para a programao de microcontroladores , EPROMs , e outros tipos de dispositivos lgicos
programveis. Numa aplicao tpica, um compilador ou montador converte um programa decdigo-
fonte (como no C ou linguagem assembly ) para o cdigo de mquina e sadas em um arquivo HEX. O arquivo
HEX importado por um programador para "queimar" o cdigo de mquina em uma ROM ou transferido
para o sistema de destino para o carregamento e execuo. [1]

Contedo

1Format
o 1.1estrutura de registro
1.1.1cor da legenda
1.1.2clculo checksum
o Terminadores de linha1.2Texto
o 1.3Tipos de registro
o 1.4formatos nomeados
Exemplo2Arquivo
3Veja tambm
4Referncias
5Ligaes externas

Formato [ editar ]
Intel HEX consiste em linhas de ASCII de texto que so separados por avano de linha ou retorno de
carro caracteres ou ambos. Cada linha de texto contmhexadecimais caracteres que codificam vrios nmeros
binrios. Os nmeros binrios podem representar dados, endereos de memria , ou outros valores,
dependendo da sua posio na linha e do tipo e comprimento da linha. Cada linha de texto chamado
de registro.
Estrutura de registro [ editar ]
Um registro (linha de texto) consiste em seis campos (partes) que aparecem na ordem da esquerda para a
direita:

1. Comece cdigo, um personagem, um clon ASCII ':'.


2. Contagem de bytes, dois dgitos hexadecimais, indicando o nmero de bytes (pares de hex dgitos) no
campo de dados. A contagem mxima de bytes 255 (0xFF). 16 (0x10) e 32 (0x20) so comumente
usados contagens de bytes.
3. Endereo, quatro dgitos hexadecimais, representando o endereo de memria de 16 bits comeando
deslocamento dos dados. O endereo fsico dos dados calculado adicionando este offset para um
endereo de base, previamente estabelecido, permitindo assim que o endereamento de memria para
alm do limite de 64 kilobytes de endereos de 16 bits. O endereo de base, cujo padro zero, pode
ser alterada por vrios tipos de registros. Endereos de base e deslocamentos de endereo so
sempre expressa como grandes endian valores.
4. Tipo de registro (ver tipos de registro abaixo), dois dgitos hexadecimais, 00 a 05, que define o
significado do campo de dados.
5. Data, uma seqncia de n bytes de dados, representados por 2 n dgitos hexadecimais. Alguns
registros omitir esse campo (n igual a zero). O significado e interpretao de bytes de dados depende
da aplicao.
6. Soma de verificao , dois dgitos hexadecimais, um valor calculado que pode ser usado para verificar
o registro no tem erros.
Cor da legenda [ editar ]
Como uma ajuda visual, os campos de registros HEX Intel so coloridos ao longo deste artigo da seguinte
forma:
Inicie cdigo contagem de octetos Endereo tipo de registro Dados Checksum
Checksum clculo [ editar ]
Um de registro byte checksum o complemento de dois (negativo) do byte menos significativo (LSB) da soma
de todos os valores de bytes decodificados no registro anteriores a soma de verificao. calculada pela soma
dos valores de bytes descodificados e extraindo o bit menos significativo da soma (isto , a soma de verificao
de dados), e depois calculando o complemento de dois do bit menos significativo (por
exemplo, por inverso seus bits e adicionando um).
Por exemplo, no caso de o registro: 03 0030 00 02337A 1E, a soma dos valores de bytes descodificados
+ 00 + 03 30 + 00 + 02 + 33 + 7A = E2 . O complemento de dois de E2 1E, o qual o byte de soma de
verificao que aparece no final do registo.
A validade de um registro pode ser verificado atravs de computao seu checksum e verificar se o checksum
calculado igual a soma de verificao que aparece no registro; um erro indicado se as somas de verificao
diferem. Uma vez que a ficha do byte de verificao o negativo da soma de verificao de dados, este
processo pode ser reduzido a soma de todos os valores de bytes descodificados - incluindo soma de verificao
do registo - e verificar que o LSB da soma zero.
Terminadores de linha de texto [ editar ]
registros HEX Intel so separados por um ou mais caracteres ASCII de terminao de linha para que cada
registro aparece sozinho em uma linha de texto. Isso melhora a legibilidade por visualmente delimitando os
registros e tambm fornece preenchimento entre os registros que podem ser usados para melhorar a mquina
de anlise de eficincia.
Programas que criam registros HEX normalmente usam caracteres de terminao de linha que estejam em
conformidade com as convenes de seus sistemas operacionais . Por exemplo, os programas de Linux usam
um nico LF ( avano de linha , hex valor 0A ) caractere para terminar linhas, ao passo que os programas do
Windows usar um CR ( retorno de carro , hex valor 0D ), seguido por um LF.

Tipos de registro [ editar ]


Intel HEX tem seis tipos de registro padro:

cdigo
tipo de
hexadeci Descrio Exemplo
registro
mal

00 Dados Contm dados e um endereo inicial de 16 bits para os dados. A : 0B 0010 00616464726573
contagem de bytes especifica o nmero de bytes de dados no 7320676170A7
registro. O exemplo mostrado direita tem 0B (decimal 11)
bytes de
dados (61, 64, 64, 72,65, 73, 73, 20, 67, 61, 70) lo
calizados em endereos consecutivos comeando no
endereo 0010.

01 Fim do Deve ocorrer apenas uma vez por arquivo na ltima linha do : 00 0000 01 FF
arquivo arquivo. O campo de dados vazio (assim contagem de bytes
00) eo campo de endereo tipicamente 0000.

02 Alargad O campo de dados contm um endereo de base segmento de : 02 0000 02 1200 EA


o de 16 bits (portanto, contagem de bytes 02)compatvel com
Segme 80x86 modo real de endereamento. O campo de endereo
nto de (normalmente 0000) ignorado.O endereo do segmento do
Endere mais recente registo 02 multiplicado por 16 e adicionado a
o cada endereo de registro de dados subsequente para formar o
endereo de partida fsico para os dados. Isto permite o
endereamento at um megabyte de espao de endereo.

03 Comec Para 80x86 processadores, especifica o contedo inicial das CS: : 04 0000 03 00003800 C1
e registros IP. O campo de endereo 0000, o contador
Segme 04, os dois primeiros bytes so o CS valor, sendo as duas
nto de ltimas so o PI valor.
Endere
o

04 Estendi Permite a 32 bits de endereamento (at 4GiB). O campo de : 02 0000 04 FFFF FC


da endereo ignorado (normalmente 0000) ea contagem de
Endere bytes sempre 02. Os dois codificados, grandes bytes de
o dados endian especificar os 16 bits superiores do endereo
Linear absoluto de 32 bits para todos os tipos
posterior 00 registros; estes bits de endereo superiores
aplicar-se at o prximo registro 04. Se nenhum registro
Tipo 04 precede um registro 00, os 16 bits superiores
endereo padro para 0000. O endereo absoluto para um tipo
de registro 00 formado pela combinao dos 16 bits
superiores endereo do mais recente disco 04 com 16 bits de
baixa endereo do 00registro.

Iniciar
O campo de endereo 0000 (no utilizado) e o contador
Linear
05 04. Os quatro bytes de dados representam o valor de 32 bits : 04 0000 05 000000CD 2A
Endere
carregado no registrador EIP do 80386 e superior CPU.
o

Formatos nomeados [ editar ]


Nomes especiais so por vezes usados para designar os formatos de arquivos HEX que empregam
subconjuntos especficos de tipos de registro. Por exemplo:

Arquivos I8HEX usar somente tipos de registro 00 e 01 (16 endereos bit)


Arquivos I16HEX usar somente tipos de registro de 00 a 03 (20 endereos de bit)
Arquivos I32HEX usar somente tipos de registro 00, 01, 04 e 05 (endereos de 32 bits)

Exemplo de Arquivo [ editar ]


Este exemplo mostra um arquivo que tem quatro registros de dados seguido por um registro de fim-de-arquivo:

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

You might also like