อ่าน 19 นาที
อินเทล เฮ็กซ์
รูปแบบไฟล์ออบเจ็กต์เลขฐานสิบหกของ Intel , รูปแบบเลขฐานสิบหกของ Intel หรือ Intellec Hex เป็น รูปแบบไฟล์ ที่ถ่ายทอด ข้อมูล ไบนารี ในรูปแบบ ข้อความ ASCII [ 10 ]...
อินเทล เฮ็กซ์
| อินเทลเฮกซ์ | |
|---|---|
| นามสกุลไฟล์ | วัตถุประสงค์ทั่วไป:.hex , [ 1 ].mcs , [ 2 ].int , [ 3 ].ihex , .ihe, .ihx[ 4 ]เฉพาะแพลตฟอร์ม:.h80 , .h86, [ 5 ] [ 6 ].a43 , [ 7 ] [ 4 ] .a90[ 7 ] [ 4 ]แยก, แบ่งเป็นธนาคาร หรือแบ่งเป็นหน้า:.hxl – .hxh, [ 8 ].h00 – .h15, .p00– .pff[ 9 ]ไบนารีหรือเลขฐานสิบหกของ Intel:.obj , .obl, [ 8 ].obh , [ 8 ].rom ,.eep |
รูปแบบไฟล์ออบเจ็กต์เลขฐานสิบหกของ Intel , รูปแบบเลขฐานสิบหกของ IntelหรือIntellec Hexเป็นรูปแบบไฟล์ที่ถ่ายทอด ข้อมูล ไบนารีในรูปแบบข้อความASCII [ 10 ]ทำให้สามารถจัดเก็บในสื่อที่ไม่ใช่ไบนารี เช่นเทปกระดาษบัตรเจาะรูฯลฯ เพื่อแสดงบนเทอร์มินัลข้อความหรือพิมพ์บนเครื่องพิมพ์แบบบรรทัด [ 11 ]รูปแบบนี้มักใช้สำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์EPROM และอุปกรณ์ลอจิกที่ตั้งโปรแกรมได้ประเภทอื่นๆ และอีมูเลเตอร์ฮาร์ดแวร์ในแอปพลิเคชันทั่วไปคอมไพเลอร์หรือแอสเซมเบลอร์จะแปลงซอร์สโค้ดของโปรแกรม (เช่น ใน ภาษา Cหรือภาษาแอสเซมบลี ) เป็นโค้ดเครื่องและส่งออกไปยังไฟล์ ออบ เจ็ กต์ หรือไฟล์ปฏิบัติการในรูปแบบเลขฐานสิบหก (หรือไบนารี) ในบางแอปพลิเคชัน รูปแบบเลขฐานสิบหกของ Intel ยังใช้เป็นรูปแบบคอนเทนเนอร์ที่เก็บแพ็กเก็ตของข้อมูลสตรีม [ 12 ] นามสกุลไฟล์ทั่วไปที่ใช้สำหรับไฟล์ที่ได้คือ .HEX [ 1 ]หรือ .H86 [ 5 ] [ 6 ] จากนั้น โปรแกรมเมอร์จะอ่านไฟล์ HEX เพื่อเขียนรหัสเครื่องลงในPROMหรือถ่ายโอนไปยังระบบเป้าหมายเพื่อโหลดและดำเนินการ[ 11 ] [ 13 ]มีเครื่องมือต่างๆ มากมายสำหรับแปลงไฟล์ระหว่างรูปแบบเลขฐานสิบหกและเลขฐานสอง (เช่นHEX2BIN ) และในทางกลับกัน (เช่น OBJHEX, OH, OHX, BIN2HEX)
ประวัติศาสตร์
รูปแบบเลขฐานสิบหกของ Intel เดิมทีได้รับการออกแบบมาสำหรับระบบพัฒนาไมโครคอมพิวเตอร์ IntellecของIntel [ 14 ] : 10–11 (MDS) ในปี 1973 เพื่อโหลดและเรียกใช้โปรแกรมจากเทปกระดาษนอกจากนี้ยังใช้เพื่อระบุเนื้อหาหน่วยความจำให้กับ Intel สำหรับการผลิตROM [ 15 ]ซึ่งก่อนหน้านี้ต้องเข้ารหัส ในรูปแบบ BNPF (Begin-Negative-Positive-Finish) ที่มีประสิทธิภาพน้อยกว่ามาก[ 14 ] : 11 ในปี พ.ศ. 2516 “กลุ่มซอฟต์แวร์” ของ Intel ประกอบด้วย Bill Byerly และ Kenneth Burgett เท่านั้น และGary Kildallเป็นที่ปรึกษาภายนอกที่ทำธุรกิจในชื่อMicrocomputer Applications Associates (MAA) และก่อตั้งDigital Researchในปี พ.ศ. 2517 [ 16 ] [ 17 ] [ 18 ] [ 9 ]ตั้งแต่ปี พ.ศ. 2518 รูปแบบนี้ถูกนำมาใช้โดย ระบบ Intellec Series II ISIS-IIที่รองรับไดรฟ์ฟลอปเก็ตต์ โดยใช้ไฟล์ที่มีนามสกุล HEX [ 19 ] อุปกรณ์เขียนโปรแกรม PROMและEPROMจำนวนมากยอมรับรูปแบบนี้
รูปแบบ
Intel HEX ประกอบด้วยบรรทัด ข้อความ ASCIIที่คั่นด้วยอักขระขึ้นบรรทัดใหม่ (line feed)หรืออักขระ ขึ้นบรรทัดแบบ ย้อนกลับ (carriage return) หรือทั้งสองอย่าง แต่ละบรรทัดข้อความประกอบด้วย อักขระเลขฐานสิบหกตัวพิมพ์ ใหญ่ที่ เข้ารหัสตัวเลขไบนารีหลายตัว ตัวเลขไบนารีเหล่านี้อาจแทนข้อมูล ที่อยู่หน่วยความจำหรือค่าอื่นๆ ขึ้นอยู่กับตำแหน่งในบรรทัด ประเภท และความยาวของบรรทัด แต่ละบรรทัดข้อความเรียกว่า เรคอร์ด (record )
โครงสร้างบันทึก
บันทึก(บรรทัดข้อความ) ประกอบด้วยฟิลด์ (ส่วน) หก ฟิลด์ที่ปรากฏตามลำดับจากซ้ายไปขวา: [ 11 ]
- รหัสเริ่มต้นอักขระหนึ่งตัว โคลอน ASCII ' : ' อักขระทั้งหมดที่อยู่ก่อนหน้าสัญลักษณ์นี้ในเรคอร์ดควรถูกละเว้น[ 15 ] [ 5 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ]อันที่จริง เวอร์ชันแรกๆ ของข้อกำหนดได้ขอให้มี อักขระ NUL อย่างน้อย 25 ตัวอยู่ก่อนหน้าเรคอร์ดแรกและตามหลังเรคอร์ดสุดท้าย เนื่องจากต้นกำเนิดของรูปแบบเป็น รูปแบบ เทปกระดาษซึ่งต้องการส่วนนำเข้าและนำออกของเทปสำหรับการจัดการ[ 15 ] [ 24 ] [ 21 ] [ 22 ]อย่างไรก็ตาม เนื่องจากส่วนนี้เป็นส่วนหนึ่งของข้อกำหนดที่ไม่ค่อยเป็นที่รู้จัก ซอฟต์แวร์ที่เขียนขึ้นทั้งหมดจึงไม่สามารถจัดการกับสิ่งนี้ได้อย่างถูกต้อง ช่วยให้สามารถจัดเก็บข้อมูลที่เกี่ยวข้องอื่นๆ ในไฟล์เดียวกัน (และแม้แต่ในบรรทัดเดียวกัน) [ 15 ] [ 23 ]ซึ่งเป็นฟังก์ชันที่ใช้โดยยูทิลิตี้การพัฒนาซอฟต์แวร์ต่างๆ เพื่อจัดเก็บตารางสัญลักษณ์หรือความคิดเห็นเพิ่มเติม[ 25 ] [ 15 ] [ 21 ] [ 26 ] [ 9 ] [ 27 ]และส่วนขยายของบุคคลที่สามที่ใช้อักขระอื่นๆ เป็นรหัสเริ่มต้น เช่น ตัวเลข ' 0 '..' 9 ' โดย Intel [ 28 ]และKeil [ 26 ] ' $ 'โดยMostek [ 29 ] [ 30 ] หรือ ' ! ', ' @ ', ' # ' , ' \ ', ' & ' และ ' ; ' โดยTDL [ 30 ] [ 31 ]ตามธรรมเนียม ' // ' มักใช้สำหรับความคิดเห็น[ 32 ] [ 33 ]ส่วนขยายทั้งสองนี้จะต้องไม่มีอักขระ ':' เป็นส่วนหนึ่งของเพย์โหลด
- จำนวนไบต์คือ ตัวเลขฐานสิบหกสองหลัก (คู่ตัวเลขฐานสิบหกหนึ่งคู่) ซึ่งระบุจำนวนไบต์ (คู่ตัวเลขฐานสิบหก) ในฟิลด์ข้อมูล จำนวนไบต์สูงสุดคือ 255 (0xFF) ค่า 8 (0x08) [ 9 ] 16 (0x10) [ 9 ]และ 32 (0x20) เป็นจำนวนไบต์ที่ใช้กันทั่วไป ไม่ใช่ทุกซอฟต์แวร์ที่จะรองรับจำนวนไบต์ที่มากกว่า 16 [ 2 ]
- ที่อยู่ (Address ) คือตัวเลขฐานสิบหกสี่หลัก ซึ่งแสดงถึงค่าออฟเซ็ตของที่อยู่หน่วยความจำเริ่มต้น 16 บิตของข้อมูลที่อยู่ทางกายภาพของข้อมูลคำนวณได้โดยการเพิ่มค่าออฟเซ็ตนี้เข้ากับที่อยู่ฐาน (Base Address) ที่กำหนดไว้ก่อนหน้านี้ ทำให้สามารถกำหนดที่อยู่หน่วยความจำได้เกินขีดจำกัด 64 กิโลไบต์ของที่อยู่ 16 บิต ที่อยู่ฐานซึ่งมีค่าเริ่มต้นเป็นศูนย์ สามารถเปลี่ยนแปลงได้โดยเรคอร์ดประเภทต่างๆ ที่อยู่ฐานและค่าออฟเซ็ตของที่อยู่จะแสดงเป็นค่าแบบบิ๊กเอนเดียน (big endian ) เสมอ
- ประเภทระเบียน (ดูประเภทระเบียนด้านล่าง) เลขฐานสิบหกสองหลัก00ถึง05โดยกำหนดความหมายของช่องข้อมูล
- ข้อมูลคือ ลำดับของข้อมูลn ไบต์ ซึ่งแทนด้วยตัวเลขฐานสิบหก 2nหลัก บางระเบียนจะละเว้นฟิลด์นี้ ( nเท่ากับศูนย์) ความหมายและการตีความของไบต์ข้อมูลขึ้นอยู่กับแอปพลิเคชัน (ข้อมูล 4 บิตจะต้องถูกจัดเก็บไว้ในครึ่งล่างหรือครึ่งบนของไบต์ กล่าวคือ หนึ่งไบต์จะเก็บข้อมูลที่อยู่ได้เพียงรายการเดียว[ 15 ] )
- ค่าตรวจสอบความถูกต้อง (Checksum) คือตัวเลขฐานสิบหกสองหลัก ซึ่งเป็นค่าที่คำนวณได้เพื่อใช้ตรวจสอบว่าข้อมูลนั้นไม่มีข้อผิดพลาด
คำอธิบายสี
เพื่อให้เห็นภาพได้ชัดเจนยิ่งขึ้น ในบทความนี้จะใช้สีต่างๆ กันเพื่ออธิบายข้อมูลในไฟล์ Intel HEX ดังนี้:
รหัสเริ่มต้น จำนวนไบต์ ที่อยู่ ประเภทบันทึก ข้อมูล ผลรวมตรวจสอบ
การคำนวณเช็คซัม
ไบต์ตรวจสอบความถูกต้องของระเบียนคือ ค่า สองส่วนเติมเต็มของไบต์ที่มีค่าน้อยที่สุด (LSB) ของผลรวมของค่าไบต์ที่ถอดรหัสแล้วทั้งหมดในระเบียนก่อนหน้าค่าตรวจสอบความถูกต้อง วิธีการคำนวณคือการรวมค่าไบต์ที่ถอดรหัสแล้วและแยกค่า LSB ของผลรวม (เช่น ค่าตรวจสอบความถูกต้องของข้อมูล) จากนั้นคำนวณค่าสองส่วนเติมเต็มของค่า LSB (เช่น โดยการกลับบิตและบวกหนึ่ง)
ตัวอย่างเช่น ในกรณีของข้อมูลบันทึก: 03 0030 00 02337A 1Eผลรวมของค่าไบต์ที่ถอดรหัสแล้วคือ03+00+30+00+02+33+7A= E2ซึ่งมีค่า LSB E2ส่วนเติมเต็มสองของE2คือ1Eซึ่งเป็นไบต์ตรวจสอบความถูกต้องที่ปรากฏอยู่ท้ายระเบียน
สามารถตรวจสอบความถูกต้องของข้อมูลได้โดยการคำนวณค่าตรวจสอบ (checksum) และตรวจสอบว่าค่าตรวจสอบที่คำนวณได้เท่ากับค่าตรวจสอบที่ปรากฏในข้อมูลหรือไม่ หากค่าตรวจสอบแตกต่างกัน จะแสดงข้อผิดพลาด เนื่องจากไบต์ค่าตรวจสอบของข้อมูลเป็นส่วนเติมเต็มสอง (two's complement) ซึ่งเป็นส่วน กลับของการบวก (additive inverse ) ของค่าตรวจสอบข้อมูล ดังนั้นกระบวนการนี้จึงสามารถลดทอนลงเหลือเพียงการรวมค่าไบต์ที่ถอดรหัสทั้งหมด รวมถึงค่าตรวจสอบของข้อมูล และตรวจสอบว่าบิตที่มีค่าน้อยที่สุด (LSB) ของผลรวมเป็นศูนย์ เมื่อนำไปใช้กับตัวอย่างข้างต้น วิธีนี้จะให้ผลลัพธ์ดังนี้: 03+00+30+00+02+33+7A+1E = 100ซึ่งมีค่า LSB 00.
ตัวจบบรรทัดข้อความ
โดยปกติแล้ว ระเบียน Intel HEX จะถูกคั่นด้วยอักขระสิ้นสุดบรรทัด ASCII อย่างน้อยหนึ่งตัว เพื่อให้แต่ละระเบียนปรากฏเพียงลำพังบนบรรทัดข้อความ ซึ่งช่วยเพิ่มความสามารถในการอ่านโดยการแบ่งระเบียน ด้วยภาพ และยังให้ช่องว่างระหว่างระเบียนที่สามารถใช้เพื่อปรับปรุง ประสิทธิภาพ การแยกวิเคราะห์ ของเครื่อง อย่างไรก็ตาม อักขระสิ้นสุดบรรทัดเป็นตัวเลือก เนื่องจาก ' : ' ใช้เพื่อตรวจจับจุดเริ่มต้นของระเบียน[ 15 ] [ 5 ] [ 24 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ]
โปรแกรมที่สร้างระเบียน HEX โดยทั่วไปจะใช้ตัวอักขระจบบรรทัดที่สอดคล้องกับข้อกำหนดของระบบปฏิบัติการตัวอย่างเช่น โปรแกรม Linux ใช้ตัวอักขระ LF ( line feed , ค่าเลขฐานสิบหก0A) เพียงตัวเดียวในการจบบรรทัด ในขณะที่โปรแกรม Windows ใช้ตัวอักขระ CR ( carriage return , ค่าเลขฐานสิบหก0D) ตามด้วย LF
ประเภทบันทึก
Intel HEX มีประเภทบันทึกมาตรฐานหกประเภท: [ 11 ]
| รหัสเลขฐานสิบหก | ประเภทบันทึก | คำอธิบาย | ตัวอย่าง |
|---|---|---|---|
| 00 | ข้อมูล | ค่าไบต์ระบุจำนวนไบต์ข้อมูลในระเบียน ตัวอย่างนี้มี0 ไบต์(สิบเอ็ด) ไบต์ข้อมูล ที่อยู่เริ่มต้น 16 บิตสำหรับข้อมูล (ในตัวอย่างอยู่ที่ที่อยู่เริ่มต้นที่0010) และข้อมูล (61,64,64,72,65,73,73,20,67,61,70) | : 0B 0010 00 6164647265737320676170 A7 |
| 01 | สิ้นสุดไฟล์ | ต้องปรากฏเพียงครั้งเดียวต่อไฟล์ ในระเบียนสุดท้ายของไฟล์ จำนวนไบต์คือ00โดยทั่วไปแล้ว ช่องที่อยู่จะเป็น0000และช่องข้อมูลนั้นถูกละเว้น | : 00 0000 01เอฟเอฟ |
| 02 | ที่อยู่เซ็กเมนต์แบบขยาย | จำนวนไบต์จะเป็น02 เสมอช่องที่อยู่ (โดยทั่วไป)0000) จะถูกละเว้น และฟิลด์ข้อมูลจะมีที่อยู่ฐานเซ็กเมนต์ 16 บิต ซึ่งจะถูกคูณด้วย 16 และบวกกับที่อยู่ระเบียนข้อมูลถัดไปแต่ละรายการเพื่อสร้างที่อยู่เริ่มต้นสำหรับข้อมูล วิธีนี้ช่วยให้สามารถกำหนดที่อยู่ได้สูงสุดถึงหนึ่งเมบิไบต์ (1048576 ไบต์) | : 02 0000 02 1200 EA |
| 03 | ที่อยู่เซกเมนต์เริ่มต้น | สำหรับโปรเซสเซอร์ 80x86 จะระบุที่อยู่เริ่มต้นการประมวลผล จำนวนไบต์จะเป็น04 เสมอช่องที่อยู่คือ0000โดยสองไบต์ข้อมูลแรกคือ ค่า CSและสองไบต์หลังคือ ค่า IPการทำงานควรเริ่มต้นที่ที่อยู่ดังกล่าว | : 04 0000 03 00003800 C1 |
| 04 | ที่อยู่เชิงเส้นแบบขยาย | รองรับการกำหนดแอดเดรสแบบ 32 บิต (สูงสุด 4 GiB ) จำนวนไบต์จะเป็น02 เสมอและช่องที่อยู่จะถูกละเลย (โดยทั่วไป)0000ไบต์ข้อมูลสองไบต์ (บิ๊กเอนเดียน) ระบุบิต 16 บิตบนสุดของที่อยู่สัมบูรณ์ 32 บิตสำหรับประเภทถัดไปทั้งหมด00บันทึกเหล่านี้ บิตที่อยู่ด้านบนเหล่านี้จะใช้ได้จนกว่าจะถึงครั้งถัดไป04เรคอร์ด ที่อยู่สัมบูรณ์สำหรับประเภทหนึ่ง00เรคอร์ดถูกสร้างขึ้นโดยการรวมบิตแอดเดรส 16 บิตบนสุดของเรคอร์ดล่าสุด04บันทึกด้วยบิตแอดเดรส 16 บิตล่างของ00บันทึก หากเป็นประเภท00บันทึกไม่ได้นำหน้าด้วยประเภทใดๆ04จากนั้นบิตแอดเดรส 16 บิตบนสุดจะถูกกำหนดค่าเริ่มต้นเป็น 0000 | : 02 0000 04 0800 F2 |
| 05 | เริ่มต้นที่อยู่เชิงเส้น | จำนวนไบต์จะเป็น04 เสมอช่องที่อยู่คือ0000ข้อมูลสี่ไบต์นี้แทนค่าแอดเดรส 32 บิต (บิ๊กเอนเดียน) ในกรณีของซีพียูที่รองรับ แอดเดรส 32 บิตนี้คือแอดเดรสที่ควรเริ่มต้นการประมวลผล | : 04 0000 05 000000CD 2A |
มีการใช้ประเภทบันทึกอื่นๆ สำหรับตัวแปรต่างๆ รวมถึง06(ข้อความ 'blinky' / คอนเทนเนอร์โปรโตคอลการส่ง) โดย Wayne และ Layne, [ 34 ]0A(เริ่มบล็อก)0B(สิ้นสุดบล็อก)0 องศาเซลเซียส(ข้อมูลที่เติมช่องว่าง)0D(ข้อมูลที่กำหนดเอง) และ0E( ข้อมูลอื่น ๆ) โดยBBC / Micro:bit Educational Foundation [ 35 ] และ81(ข้อมูลในส่วนของโค้ด )82(ข้อมูลในส่วนข้อมูล )83(ข้อมูลในส่วนของสแต็ก )84(ข้อมูลในส่วนเพิ่มเติม )85( ที่อยู่ย่อหน้าสำหรับส่วนของรหัสสัมบูรณ์)86(ที่อยู่ย่อหน้าสำหรับส่วนข้อมูลสัมบูรณ์)87(ที่อยู่ย่อหน้าสำหรับเซ็กเมนต์สแต็กสัมบูรณ์) และ88(ที่อยู่ย่อหน้าสำหรับส่วนเสริมสัมบูรณ์) โดยการวิจัยดิจิทัล[ 6 ] [ 20 ]
รูปแบบที่มีชื่อ
รูปแบบเทปกระดาษ Intellec Hex 4 บิต/8 บิตและรูปแบบบัตรเจาะรูคอมพิวเตอร์ Intellec Hex รุ่นดั้งเดิม ในปี 1973/1974 รองรับประเภทระเบียนเพียงประเภทเดียวเท่านั้น00[ 36 ] [ 37 ] [ 25 ]สิ่งนี้ได้รับการขยายเพิ่มเติมประมาณปี 1975 เพื่อรองรับประเภทบันทึกด้วย01[ 15 ]บางครั้งเรียกว่ารูปแบบเลขฐานสิบหกเชิงสัญลักษณ์ [ 38 ]ซึ่งอาจรวมถึงส่วนหัวเสริมที่มีตารางสัญลักษณ์สำหรับการดีบักเชิงสัญลักษณ์[ 25 ] [ 28 ] [ 26 ] [ 9 ]อักขระทั้งหมด ในเรคอร์ด ที่อยู่ก่อนหน้าเครื่องหมายโคลอนจะถูกละเว้น[ 15 ] [ 5 ]
ประมาณปี 1978 อินเทลได้เปิดตัวเครื่องบันทึกข้อมูลชนิดใหม่02และ03(เพื่อเพิ่มการรองรับพื้นที่แอดเดรสแบบแบ่งส่วนของ โปรเซสเซอร์ 8086/8088 รุ่นใหม่ในขณะนั้น ) ใน รูป แบบเลขฐานสิบหกแบบขยาย ของ Intellec
บางครั้งมีการใช้ชื่อเฉพาะเพื่อระบุรูปแบบของไฟล์ HEX ที่ใช้ชุดย่อยเฉพาะของประเภทระเบียน ตัวอย่างเช่น:
- ไฟล์ I8HEX (หรือHEX-80 ) ใช้เฉพาะประเภทเรคอร์ดเท่านั้น00และ01
- ไฟล์ I16HEX (หรือHEX-86 ) ใช้เฉพาะประเภทเรคอร์ดเท่านั้น00ผ่าน03[ 10 ]
- ไฟล์ I32HEX (หรือHEX-386 ) ใช้เฉพาะประเภทเรคอร์ดเท่านั้น00,01,04, และ05
ตัวอย่างไฟล์
ตัวอย่างนี้แสดงไฟล์ที่มีข้อมูลสี่ระเบียน ตามด้วยระเบียนสิ้นสุดไฟล์:
: 10 0100 00 214601360121470136007EFE09D21901 40 : 10 0110 00 2146017E17C20001FF5F160021480119 28 : 10 0120 00 194E79234623965778239EDA3F01B2CA A7 : 10 0130 00 3F0156702B5E712B722B732146013421 C7 : 00 0000 01เอฟเอฟ
รหัสเริ่มต้น จำนวนไบต์ ที่อยู่ ประเภทบันทึก ข้อมูล ผลรวมตรวจสอบ
ตัวแปร
นอกจากส่วนขยายของ Intel เองแล้ว บุคคลที่สามหลายรายยังได้กำหนดรูปแบบและส่วนขยายของรูปแบบเลขฐานสิบหกของ Intel ด้วย เช่นDigital Research (ดังเช่นที่เรียกว่า "รูปแบบเลขฐานสิบหกของ Digital Research" [ 6 ] [ 20 ] ), Zilog , Mostek , [ 29 ] [ 30 ] TDL , [ 30 ] [ 31 ] Texas Instruments , Microchip , [ 39 ] [ 40 ] c't , Wayne and Layne, [ 34 ]และBBC / Micro:bit Educational Foundation (ด้วย "รูปแบบเลขฐานสิบหกสากล" [ 35 ] ) ซึ่งอาจมีข้อมูลเกี่ยวกับจุดเริ่มต้นของโปรแกรมและเนื้อหาของรีจิสเตอร์ลำดับไบต์ที่สลับกันในฟิลด์ข้อมูลค่าเติมสำหรับพื้นที่ที่ไม่ได้ใช้บิตฟิวส์และความแตกต่างอื่นๆ
รูปแบบเลขฐานสิบหกของ Digital Research สำหรับโปรเซสเซอร์ 8086 รองรับข้อมูลเซกเมนต์โดยการเพิ่มประเภทเรคอร์ดเพื่อแยกความแตกต่างระหว่างโค้ด ข้อมูล สแต็ก และเซกเมนต์พิเศษ[ 5 ] [ 6 ] [ 20 ]
แอสเซมเบลอร์ส่วนใหญ่สำหรับCP/M-80 (และXASM09สำหรับMotorola 6809 ด้วย ) ไม่ได้ใช้เรคอร์ดประเภท 01h เพื่อระบุจุดสิ้นสุดของไฟล์ แต่ใช้ รายการ ประเภทข้อมูล ความยาวศูนย์ 00h แทน[ 41 ] [ 1 ]วิธีนี้ช่วยให้การรวมไฟล์เลขฐานสิบหกหลายไฟล์เข้าด้วยกันง่ายขึ้น[ 42 ] [ 43 ] [ 1 ]
บริษัท Texas Instruments ได้กำหนดรูปแบบหนึ่งที่ที่อยู่จะอิงตามความกว้างของบิตในรีจิสเตอร์ของโปรเซสเซอร์ ไม่ใช่ไบต์
Microchip กำหนดตัวแปร INTHX8S [ 44 ] (INHX8L, [ 1 ] INHX8H [ 1 ] ), INHX8M, [ 44 ] [ 1 ] [ 45 ] INHX16 [ 44 ] (INHX16M [ 1 ] ) และ INHX32 [ 46 ]สำหรับไมโครคอนโทรลเลอร์ PIC ของพวก เขา
โปรแกรมแอสเซมเบลอร์ครอสแมโคร AS ของ Alfred Arnold [ 1 ] โปรแกรมจำลอง 8051 SIM51 ของ Werner Hennig-Roleff [ 26 ]และโปรแกรมแปลงครอส BINTEL ของ Matthias R. Paul [ 47 ]เป็นที่ทราบกันดีว่ากำหนดส่วนขยายให้กับรูปแบบเลขฐานสิบหกของ Intel
ดูเพิ่มเติม
- การเข้ารหัสไบนารีเป็นข้อความ : การสำรวจและเปรียบเทียบอัลกอริธึมการเข้ารหัส
- โปรโตคอลแบบข้อความ
- รูปแบบไฟล์เทคโนโลยี MOS
- รูปแบบเลขฐานสิบหกของ Motorola S-record
- รูปแบบเลขฐานสิบหกของ Tektronix
- Texas Instruments TI-TXT (TI Text)
- ชุดไมโครคอมพิวเตอร์ Intel (MCS)
- ไฟล์ออบเจ็กต์
อ่านเพิ่มเติม
- "ฉันจะตีความข้อมูลในรูปแบบ HEX ของ Motorola S และ Intel ได้อย่างไร? Intel Hex-32, รหัส 99"หน้าหลัก > ฮาร์ดแวร์ > … > ระบบทดสอบในวงจร > อุปกรณ์ทดสอบอัตโนมัติ [เลิกผลิตแล้ว] > รายละเอียด Keysight Technologiesเก็บถาวรจากต้นฉบับเมื่อ 2020-03-01 เรียกดูเมื่อ2020-03-01
- Bergmans, San (2019-06-02) [2001]. "รูปแบบ Intel HEX" . SB-Projects . เก็บถาวรจากต้นฉบับเมื่อ 2020-03-01 . เรียกดูเมื่อ 2020-03-01 .
- Beard, Brian (2016) [2007]. "รูปแบบระเบียน HEX ของ Intel" . Lucid Technologies . เก็บถาวรจากต้นฉบับเมื่อ 2020-02-28 . เรียกดูเมื่อ2020-02-28 .
- แอนเดอร์สัน, โทมัส เอ็น. (กุมภาพันธ์ 1998). "รูปแบบออบเจ็กต์ที่อยู่คำเลขฐานสิบหกของ Intel". คู่มือผู้ใช้ Telemark Assembler (TASM) (PDF) . 3.1. อิสซาควาห์, วอชิงตัน, สหรัฐอเมริกา: Squak Valley Software. หน้า 25–26 . เก็บถาวร(PDF)จากต้นฉบับเมื่อ 2021-12-11 . เรียกดูเมื่อ2021-12-11 .
รูปแบบออบเจ็กต์ที่อยู่คำเลขฐานสิบหกของ Intel […] รูปแบบนี้เหมือนกับรูปแบบออบเจ็กต์เลขฐานสิบหกของ Intel ยกเว้นว่าที่อยู่สำหรับแต่ละบรรทัดของโค้ดออบเจ็กต์จะถูกหารด้วยสอง ทำให้แปลงเป็นที่อยู่คำ (คำ 16 บิต) ฟิลด์อื่นๆ ทั้งหมดเหมือนกัน นี่คือตัวอย่าง: […] :180800000102030405060708090A0B0C0D0E0F101112131415161718AC […] :02080C00191AA3 […] :00000001FF […]
(32 หน้า) - "โปรโตคอลการดาวน์โหลดแบบอนุกรม ADuC70xx" (PDF) (เอกสารประกอบการใช้งาน) ฉบับแก้ไข C นอร์วูด รัฐแมสซาชูเซตส์ สหรัฐอเมริกา: Analog Devices 2016 AN-724 เก็บถาวร(PDF)จากต้นฉบับเมื่อ 2023-10-05 เรียกดูเมื่อ2023-10-05(8 หน้า)
ลิงก์ภายนอก
- binex - โปรแกรมแปลงข้อมูลระหว่าง Intel HEX และไบนารีสำหรับ Windows
- SRecordคือโปรแกรมแปลงข้อมูลระหว่าง Intel HEX และไบนารีสำหรับ Linux ( วิธีใช้งาน ) พร้อมซอร์สโค้ดภาษา C++
- kk_ihexเป็นไลบรารีภาษาซีแบบโอเพนซอร์สสำหรับอ่านและเขียนข้อมูล Intel HEX
- libgisคือไลบรารีโอเพนซอร์สภาษาซีที่ใช้แปลงไฟล์ Intel HEX, Motorola S-Record และ Atmel Generic
- bincopyเป็นแพ็กเกจ Python สำหรับจัดการไฟล์ Intel HEX
- SwiftIntelHex - แพ็กเกจ Swift สำหรับแยกวิเคราะห์ไฟล์ Intel HEX สำหรับ iOS และ macOS
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ อินเทล เฮ็กซ์
รูปแบบไฟล์ออบเจ็กต์เลขฐานสิบหกของ Intel , รูปแบบเลขฐานสิบหกของ Intel หรือ Intellec Hex เป็น รูปแบบไฟล์ ที่ถ่ายทอด ข้อมูล ไบนารี ในรูปแบบ ข้อความ ASCII [ 10 ]...
ประวัติศาสตร์
รูปแบบเลขฐานสิบหกของ Intel เดิมทีได้รับการออกแบบมาสำหรับ ระบบพัฒนาไมโครคอมพิวเตอร์ Intellec ของ Intel [ 14 ] : 10–11 (MDS) ในปี 1973 เพื่อโหลดและเรียกใช้โปรแกรมจาก เทปกระดาษ นอกจากนี้ยังใช้เพื่อระบุเนื้อหาหน่วยความจำให้กับ Intel สำหรับการผลิต ROM [ 15 ]...
รูปแบบ
Intel HEX ประกอบด้วยบรรทัด ข้อความ ASCII ที่คั่นด้วย อักขระขึ้นบรรทัดใหม่ (line feed) หรืออักขระ ขึ้นบรรทัดแบบ ย้อนกลับ (carriage return) หรือทั้งสองอย่าง แต่ละบรรทัดข้อความประกอบด้วย อักขระ เลขฐานสิบหกตัวพิมพ์ ใหญ่ที่ เข้ารหัส ตัวเลขไบนารีหลายตัว...
โครงสร้างบันทึก
บันทึก(บรรทัดข้อความ) ประกอบด้วย ฟิลด์ (ส่วน) หก ฟิลด์ ที่ปรากฏตามลำดับจากซ้ายไปขวา: [ 11 ]