Intel HEX

Intel HEX – format file yang berisi data biner, digunakan untuk pemrograman mikrokontroler – sistem tertanam, EEPROM, memori FLASH. Ini adalah format tertua dari jenis ini, digunakan sejak tahun 1970-an.

Data dalam bentuk heksadesimal ditulis dalam baris-baris dalam bentuk teks, setiap baris berisi 6 field:

  1. Tag awal, satu karakter ASCII – titik dua ‘:’,
  2. Jumlah byte, dua digit heksadesimal, menentukan panjang record data,
  3. Alamat, empat digit heksadesimal, alamat 16 bit, memungkinkan hingga 64K memori untuk dialamatkan dalam satu segmen (disimpan dalam format Big Endian)
  4. Jenis rekaman, dua digit heksadesimal antara 00 dan 05,
  5. Data, urutan data yang bytenya ditulis dalam bentuk teks heksadesimal,
  6. Checksum, dua digit heksadesimal, record checksum – seluruh record kecuali ‘:’.

Contoh perhitungan checksum untuk record value: 0300300002337A1E

03 + 00 + 30 + 00 + 02 + 33 + 7A = E2, ketika komplemen dua (U2) kita dapatkan – 1E (dalam heksadesimal: 100 – E2 = 1E). Dengan kata lain, byte paling signifikan dari jumlah semua byte dalam satu catatan harus 0.

03 + 00 + 30 + 00 + 02 + 33 + 7A + 1E = 100, byte yang paling tidak signifikan adalah 0.

Jenis rekaman

Ada enam jenis rekaman yang berbeda:

  • 00, catatan yang berisi data dan alamat 16-bit,
  • 01, akhir file, catatan terakhir,
  • 02, catatan alamat segmen yang diperluas (alamat 20 bit), digunakan untuk pengalamatan hingga 1MB (bidang alamat sama dengan 0000, data berisi alamat 2-byte yang ditulis dalam urutan big endian, yang dikalikan dengan 2^4 ditambahkan ke alamat catatan tipe 00 mengikutinya)
  • 03, catatan pengaturan alamat 20-bit dari mana eksekusi kode akan dimulai. Ini berisi sepasang register CS (2 byte data pertama) dan IP (2 byte yang tersisa). Hanya dapat digunakan dalam mode nyata. Jika tidak ada alamat yang diberikan, eksekusi kode akan dimulai dari alamat default.
  • 04, catatan alamat segmen yang diperluas (alamat 32 bit), digunakan untuk alamat hingga 4GB (mirip dengan 02 tetapi alamat bidang data 2 byte dikalikan dengan 2^16)
  • 05, catatan pengaturan alamat linier 32-bit dari mana eksekusi kode akan dimulai (Daftar EIP). Hanya dapat digunakan dalam mode terproteksi. Jika tidak ada alamat yang diberikan, eksekusi kode akan dimulai dari alamat default.
This entry was posted in . Bookmark the permalink.
This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.