Intel Hex Tiedosto

Intel Hex tiedosto

GQ-4X.jpg
Tässä on sopiva ohjelmointilaite

http://probyte.fi/catalog/product_info.php?products_id=133

Tässä on pieni Intel hex-koodi tiedosto

:03800000028100FA
:0F810000E47F00EFF4F5907E50DEFEDFF680FEA8
:00000001FF

Vertaa sitä assembly koodiin

8000                      12            cseg at 8000h
8000 028100               13            jmp main
                          14
8100                      15            org 8100h
                          16
8100 E4                   17            main:   clr a
8101 7F00                 18            mov r7,#0
8103 EF                   19    loop:    mov a,r7
8104 F4                   20            cpl a
8105 F590                 21            mov p1,a
8107 7E50                 22            mov r6,#50h
8109 DEFE                 23            djnz r6,$
810B DFF6                 24            djnz r7,loop
810D 80FE                 25            jmp $
                          26
                          27
                          28
                          29             end

Nyt voit tutkia allaolevan kuvan perusteella Hex-koodia. hex.gif

'===================================
:10010000214601360121470136007EFE09D2190140
:100110002146017E17C20001FF5F16002148011928
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF

Intel hex koodi on tavallinen ASCII tiedosto, jonka pääte on .hex
Tätä on käytettty ainakin 1974 vuodesta alkaen.
Sitä käytetään siirtämään kääntäjän tuottamaa koodia prommarille.
Melkein kaikki prommarit osaavat lukea Intel -Hex-koodia.

-Aloituskoodi ASCII kaksoispiste ":".

-Kaksi hex numeroa, joka osoittaa tavujen määrän (hex numero paria) datakentässä.
Tavujen enimmäismäärä on 255 (0xFF).
16 (0x10) ja 32 (0x20) käytetään yleisesti tavujen laskentaan.

- Prosessorin osoite, neljä hex numeroa,jotka edustavat 16-bittisistä muistia.

Fyysinen osoite sadaan lisäämällä tämä osoite aiemmin perustettuun perusosoitteeseen,jolloin muistiosoitus menee yli 64 kilotavurajojen. Tämä on 16-bittinen osoite.
Base osoitteet ja osoitteen siirtymät ilmaistaan aina iso endian arvoina.

- Kahdella hex numerolla, 00-05, määritellään merkitys datakentässä.
00 on data
01 on datan loppu
02 extended segment data
03 start of segment data
04 laajennettu lineeaarinen osoite
05 lineaarinen osoite

-Tarkistussumma, kaksi hex numeroa,laskennallista arvoa,jota voidaan
käyttää tarkistamaan, että datassa ei ole virheitä.
Esimerkiksi: 0300300002337A1E, summa dekoodatun tavujen arvoja on 03 + 00 + 30 + 00 + 02 + 33 + 7A = E2.
Kahden komplementti E2 on 1E, joka on tarkistussumma tavu esiintyvät lopussa.
Toinen esimerkki

:02000004FFFFFC
02 on monta byteä on rivllä
0000 on osoitekenttä. Extended linear address tietueeseessa, tämä kenttä on aina 0000.
04 Tietueen tyyppi on 04 (extended linear address-tietue).
FFFF on ylempi osa 16 bitin osoitteesta.
FC on lasketty arvo
01h + NOT(02h + 00h + 00h + 04h + FFh + FFh).

I8HEX tiedostot käyttävät vain tietuetyyppiä 00 ja 01 (16-bittinen osoitteet)
I16HEX tiedostot käyttävät vain tietuetyyppien 00 kautta 03 (20 bitin osoitteet)
I32HEX tiedostot käyttävät vain tietuetyyppejä 00, 01, 04, ja 05 (32 bit osoitteet)

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License