इंटेल हेक्स: Difference between revisions

From Vigyanwiki
No edit summary
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|File format for conveying binary information}}
{{Short description|File format for conveying binary information}}
{{Distinguish|Intel hexadecimal notation}}
{{Distinguish|इंटेल हेक्साडेसिमल नोटेशन}}
{{Use dmy dates|date=February 2020|cs1-dates=y}}
 
{{Use list-defined references|date=December 2021}}
{{Infobox file format
{{Infobox file format
|name      = Intel hex
|name      = इंटेल हेक्स
|extension = <code>.hex</code>,<ref name="Arnold_2020_AS"/> <code>.h86<!-- x86 version only --></code>,<ref name="DRI_1981_CPM86-SG"/><ref name="DRI_1983_CPM86-PG"/> <code>.hxl<!-- IDA, split 8-bit format only --></code>,<ref name="IDA_2006_Hexforms"/> <code>.hxh<!-- IDA, split 8-bit format only --></code>,<ref name="IDA_2006_Hexforms"/> <code>.obl<!-- IDA, split 8-bit format only --></code>,<ref name="IDA_2006_Hexforms"/> <code>.obh<!-- IDA, split 8-bit format only --></code>,<ref name="IDA_2006_Hexforms"/> <code>.mcs</code>,<ref name="Xilinx_2010_MCS"/> <code>.ihex</code>, <code>.ihe<!-- .ihex stripped down to 3 characters, also used for other purposes --></code>, <code>.ihx</code><!-- also used for other purposes -->, <code>.a43<!-- TI MPS430, not sure this is pure Intel hex --></code>, <code>.a90<!-- https://github.com/mschuldt/intel-hex-mode --></code>, <code>.p00</code><ref name="Roche_2000"/> to <code>.pff</code><ref name="Roche_2000"/>
|extension = <code>.hex</code>,<ref name="Arnold_2020_AS"/> <code>.h86<!-- x86 version only --></code>,<ref name="DRI_1981_CPM86-SG"/><ref name="DRI_1983_CPM86-PG"/> <code>.hxl<!-- IDA, split 8-bit format only --></code>,<ref name="IDA_2006_Hexforms"/> <code>.hxh<!-- IDA, split 8-bit format only --></code>,<ref name="IDA_2006_Hexforms"/> <code>.obl<!-- IDA, split 8-bit format only --></code>,<ref name="IDA_2006_Hexforms"/> <code>.obh<!-- IDA, split 8-bit format only --></code>,<ref name="IDA_2006_Hexforms"/> <code>.mcs</code>,<ref name="Xilinx_2010_MCS"/> <code>.ihex</code>, <code>.ihe<!-- .ihex stripped down to 3 characters, also used for other purposes --></code>, <code>.ihx</code><!-- also used for other purposes -->, <code>.a43<!-- TI MPS430, not sure this is pure Intel hex --></code>, <code>.a90<!-- https://github.com/mschuldt/intel-hex-mode --></code>, <code>.p00</code><ref name="Roche_2000"/> to <code>.pff</code><ref name="Roche_2000"/>
}}
}}
'''इंटेल हेक्साडेसिमल ऑब्जेक्ट फ़ाइल फॉर्मेट, इंटेल हेक्स फॉर्मेट''' या '''इंटेलेक हेक्स''' एक फ़ाइल फॉर्मेट है जो [[ASCII]] टेक्स्ट रूप में बाइनरी जानकारी देता है।<ref name="Intel_1980_FU-UG"/> इसका उपयोग आमतौर पर प्रोग्रामिंग माइक्रोकंट्रोलर, EPROMs और अन्य टाइप के प्रोग्रामेबल लॉजिक डिवाइस और [[हार्डवेयर एमुलेटर]] के लिए किया जाता है। एक विशिष्ट एप्लिकेशन में, एक कंपाइलर या [[असेंबलर (कंप्यूटिंग)|असेंबलर]] एक प्रोग्राम के सोर्स कोड (जैसे सी या असेंबली लैंग्वेज में) को मशीन कोड में परिवर्तित करता है और इसे HEX फ़ाइल में आउटपुट करता है। कुछ लोग इसका उपयोग [[स्ट्रीम डेटा]] के पैकेट रखने वाले [[कंटेनर प्रारूप|कंटेनर फॉर्मेट]] के रूप में भी करते हैं।<ref name="Analog_2021"/><ref name="Arnold_2020_AS"/> परिणामी फ़ाइलों के लिए उपयोग किए जाने वाले सामान्य फ़ाइल एक्सटेंशन .HEX[1] या .H86 हैं।<ref name="DRI_1981_CPM86-SG"/><ref name="DRI_1983_CPM86-PG"/> HEX फ़ाइल को प्रोग्रामर द्वारा PROM में मशीन कोड लिखने के लिए पढ़ा जाता है या लोडिंग और निष्पादन के लिए लक्ष्य सिस्टम में स्थानांतरित किया जाता है।<ref name="Intel_1988_Spec"/><ref name="ARM_hex"/>
'''इंटेल हेक्साडेसिमल ऑब्जेक्ट फ़ाइल फॉर्मेट, इंटेल हेक्स फॉर्मेट''' या '''इंटेलेक हेक्स''' एक फ़ाइल फॉर्मेट है जो [[ASCII]] टेक्स्ट रूप में बाइनरी जानकारी देता है।<ref name="Intel_1980_FU-UG"/> इसका उपयोग सामान्यतः प्रोग्रामिंग माइक्रोकंट्रोलर, EPROMs और अन्य टाइप के प्रोग्रामेबल लॉजिक डिवाइस और [[हार्डवेयर एमुलेटर]] के लिए किया जाता है। एक विशिष्ट एप्लिकेशन में, एक कंपाइलर या [[असेंबलर (कंप्यूटिंग)|असेंबलर]] एक प्रोग्राम के सोर्स कोड (जैसे सी या असेंबली लैंग्वेज में) को मशीन कोड में परिवर्तित करता है और इसे हेक्स फ़ाइल में आउटपुट करता है। कुछ लोग इसका उपयोग [[स्ट्रीम डेटा]] के पैकेट रखने वाले [[कंटेनर प्रारूप|कंटेनर फॉर्मेट]] के रूप में भी करते हैं।<ref name="Analog_2021"/><ref name="Arnold_2020_AS"/> परिणामी फ़ाइलों के लिए उपयोग किए जाने वाले सामान्य फ़ाइल एक्सटेंशन .हेक्स[1] या H86 हैं।<ref name="DRI_1981_CPM86-SG"/><ref name="DRI_1983_CPM86-PG"/> हेक्स फ़ाइल को प्रोग्रामर द्वारा PROM में मशीन कोड लिखने के लिए पढ़ा जाता है या लोडिंग और निष्पादन के लिए लक्ष्य सिस्टम में स्थानांतरित किया जाता है।<ref name="Intel_1988_Spec"/><ref name="ARM_hex"/>
==इतिहास==
==इतिहास==
इंटेल हेक्स प्रारूप मूल रूप से 1973 में इंटेल के इंटेलेक माइक्रो कंप्यूटर डेवलपमेंट सिस्टम (एमडीएस) के लिए डिज़ाइन किया गया था ताकि पेपर टेप से प्रोग्राम लोड और निष्पादित किया जा सके। इसका उपयोग ROM उत्पादन के लिए Intel को मेमोरी सामग्री निर्दिष्ट करने के लिए भी किया जाता था।<ref name="Intel_1977"/> 1973 में, इंटेल के "सॉफ़्टवेयर समूह" में केवल बिल बायर्ली और केन बर्गेट और बाहरी सलाहकार के रूप में गैरी किल्डॉल शामिल थे।<ref name="Kildall_1980_CPM"/><ref name="Kildall_1993"/><ref name="Roche_2000"/> 1975 की शुरुआत में, फ़ाइल एक्सटेंशन HEX का उपयोग करते हुए, इस प्रारूप का उपयोग MCS सीरीज II ISIS-II सिस्टम द्वारा किया गया था।<ref name="Feichtinger_1987"/> कई PROM और EPROM प्रोग्रामिंग उपकरणों ने इस प्रारूप को स्वीकार किया।
इंटेल हेक्स फॉर्मेट मूल रूप से 1973 में इंटेल के इंटेलेक माइक्रो कंप्यूटर डेवलपमेंट सिस्टम (एमडीएस) के लिए डिज़ाइन किया गया था ताकि पेपर टेप से प्रोग्राम लोड और निष्पादित किया जा सके। इसका उपयोग ROM उत्पादन के लिए Intel को मेमोरी सामग्री निर्दिष्ट करने के लिए भी किया जाता था।<ref name="Intel_1977"/> 1973 में, इंटेल के "सॉफ़्टवेयर समूह" में केवल बिल बायर्ली और केन बर्गेट और बाहरी सलाहकार के रूप में गैरी किल्डॉल सम्मिलित थे।<ref name="Kildall_1980_CPM"/><ref name="Kildall_1993"/><ref name="Roche_2000"/> 1975 की आरंभ में, फ़ाइल एक्सटेंशन हेक्स का उपयोग करते हुए, इस फॉर्मेट का उपयोग MCS सीरीज II ISIS-II सिस्टम द्वारा किया गया था।<ref name="Feichtinger_1987"/> कई PROM और EPROM प्रोग्रामिंग उपकरणों ने इस फॉर्मेट को स्वीकार किया।


==फॉर्मेट==
==फॉर्मेट==
Intel HEX में ASCII टेक्स्ट की पंक्तियाँ होती हैं जो लाइन फ़ीड या कैरिएज रिटर्न कैरेक्टर या दोनों द्वारा अलग की जाती हैं। प्रत्येक टेक्स्ट लाइन में [[हेक्साडेसिमल]] वर्ण होते हैं जो एकाधिक बाइनरी संख्याओं को एन्कोड करते हैं। बाइनरी संख्याएँ डेटा, मेमोरी एड्रेस या अन्य मानों का प्रतिनिधित्व कर सकती हैं, जो लाइन में उनकी स्थिति और लाइन के टाइप और लंबाई पर निर्भर करता है। प्रत्येक टेक्स्ट लाइन को रिकॉर्ड कहा जाता है।
Intel हेक्स में ASCII टेक्स्ट की पंक्तियाँ होती हैं जो लाइन फ़ीड या कैरिएज रिटर्न कैरेक्टर या दोनों द्वारा अलग की जाती हैं। प्रत्येक टेक्स्ट लाइन में [[हेक्साडेसिमल]] वर्ण होते हैं जो एकाधिक बाइनरी संख्याओं को एन्कोड करते हैं। बाइनरी संख्याएँ डेटा, मेमोरी एड्रेस या अन्य मानों का प्रतिनिधित्व कर सकती हैं, जो लाइन में उनकी स्थिति और लाइन के टाइप और लंबाई पर निर्भर करता है। प्रत्येक टेक्स्ट लाइन को रिकॉर्ड कहा जाता है।


===रिकॉर्ड संरचना===
===रिकॉर्ड संरचना===
एक [[रिकॉर्ड (कंप्यूटर विज्ञान)|रिकॉर्ड]] (टेक्स्ट की लाइन) में छह फ़ील्ड (भाग) होते हैं जो बाएं से दाएं क्रम में दिखाई देते हैं:<ref name="Intel_1988_Spec"/>
एक [[रिकॉर्ड (कंप्यूटर विज्ञान)|रिकॉर्ड]] (टेक्स्ट की लाइन) में छह फ़ील्ड (भाग) होते हैं जो बाएं से दाएं क्रम में दिखाई देते हैं:<ref name="Intel_1988_Spec"/>


# ''स्टार्ट कोड'', एक वर्ण, एक ASCII कोलन ':'। किसी रिकॉर्ड में इस प्रतीक से पहले आने वाले सभी वर्णों को अनदेखा किया जाना चाहिए।<ref name="Intel_1977" /><ref name="DRI_1981_CPM86-SG" /><ref name="DRI_1984_CCPM-PRG" /><ref name="DataIO_1980_OG" /><ref name="DataIO_1987_TFF" /><ref name="Fujitsu_2001" /> वास्तव में, विनिर्देश के बहुत शुरुआती संस्करणों में पहले रिकॉर्ड से पहले और अंतिम रिकॉर्ड के बाद कम से कम 25 एनयूएल वर्णों की मांग की गई थी।<ref name="Intel_1977" /><ref name="DRI_1982_CPM-M" /><ref name="DataIO_1980_OG" /><ref name="DataIO_1987_TFF" /> हालाँकि, चूंकि यह विनिर्देशन का एक अल्पज्ञात हिस्सा था, इसलिए लिखे गए सभी सॉफ़्टवेयर इसका सही ढंग से सामना नहीं कर पाते। यह अन्य संबंधित जानकारी को एक ही फ़ाइल (और यहां तक ​​कि एक ही लाइन) में संग्रहीत करने की अनुमति देता है,<ref name="Intel_1977" /><ref name="Fujitsu_2001" /> प्रतीक तालिकाओं या अतिरिक्त टिप्पणियों को संग्रहीत करने के लिए विभिन्न सॉफ़्टवेयर विकास उपयोगिताओं द्वारा उपयोग की जाने वाली सुविधा,<ref name="Intel_1974_PLM" /><ref name="Intel_1977" /><ref name="DataIO_1980_OG" /><ref name="Hennig-Roleff_1993" /><ref name="Roche_2000" /> और थर्ड पार्टी एक्सटेंशन अन्य वर्णों को स्टार्ट कोड के रूप में उपयोग करते हैं जैसे केइल द्वारा अंक '0', <ref name="Hennig-Roleff_1993" /> मोस्टेक द्वारा '$', <ref name="Formaniak-Leitch_1977" /><ref name="Ogdin-Colvin-Pittman-Tubb_1977" /> या '!', '@', '#', '\', '&' और ';' टीडीएल द्वारा.<ref name="Ogdin-Colvin-Pittman-Tubb_1977" /><ref name="Kreidl_1981" /> अनुक्रम के अनुसार, '//' का प्रयोग अक्सर टिप्पणियों के लिए किया जाता है। इनमें से किसी भी एक्सटेंशन में पेलोड के हिस्से के रूप में कोई ':' अक्षर शामिल नहीं हो सकता है।
# ''स्टार्ट कोड'', एक वर्ण, एक ASCII कोलन ':'। किसी रिकॉर्ड में इस प्रतीक से पहले आने वाले सभी वर्णों को अनदेखा किया जाना चाहिए।<ref name="Intel_1977" /><ref name="DRI_1981_CPM86-SG" /><ref name="DRI_1984_CCPM-PRG" /><ref name="DataIO_1980_OG" /><ref name="DataIO_1987_TFF" /><ref name="Fujitsu_2001" /> वास्तव में, विनिर्देश के बहुत प्रारंभिक संस्करणों में पहले रिकॉर्ड से पहले और अंतिम रिकॉर्ड के बाद कम से कम 25 एनयूएल वर्णों की मांग की गई थी।<ref name="Intel_1977" /><ref name="DRI_1982_CPM-M" /><ref name="DataIO_1980_OG" /><ref name="DataIO_1987_TFF" /> हालाँकि, चूंकि यह विनिर्देशन का एक अल्पज्ञात हिस्सा था, इसलिए लिखे गए सभी सॉफ़्टवेयर इसका सही ढंग से सामना नहीं कर पाते। यह अन्य संबंधित जानकारी को एक ही फ़ाइल (और यहां तक ​​कि एक ही लाइन) में संग्रहीत करने की अनुमति देता है,<ref name="Intel_1977" /><ref name="Fujitsu_2001" /> प्रतीक तालिकाओं या अतिरिक्त टिप्पणियों को संग्रहीत करने के लिए विभिन्न सॉफ़्टवेयर विकास उपयोगिताओं द्वारा उपयोग की जाने वाली सुविधा,<ref name="Intel_1974_PLM" /><ref name="Intel_1977" /><ref name="DataIO_1980_OG" /><ref name="Hennig-Roleff_1993" /><ref name="Roche_2000" /> और थर्ड पार्टी एक्सटेंशन अन्य वर्णों को स्टार्ट कोड के रूप में उपयोग करते हैं जैसे केइल द्वारा अंक '0', <ref name="Hennig-Roleff_1993" /> मोस्टेक द्वारा '$', <ref name="Formaniak-Leitch_1977" /><ref name="Ogdin-Colvin-Pittman-Tubb_1977" /> या '!', '@', '#', '\', '&' और ';' टीडीएल द्वारा.<ref name="Ogdin-Colvin-Pittman-Tubb_1977" /><ref name="Kreidl_1981" /> अनुक्रम के अनुसार, '//' का प्रयोग प्रायः टिप्पणियों के लिए किया जाता है। इनमें से किसी भी एक्सटेंशन में पेलोड के हिस्से के रूप में कोई ':' अक्षर सम्मिलित नहीं हो सकता है।
# ''बाइट काउंट'', दो हेक्स अंक (एक हेक्स अंक जोड़ी), डेटा फ़ील्ड में बाइट्स (हेक्स अंक जोड़े) की संख्या दर्शाती है। अधिकतम बाइट काउंट 255 (0xFF) है। 8 (0x08),<ref name="Roche_2000" />16 (0x10)<ref name="Roche_2000" />और 32 (0x20) आमतौर पर उपयोग की जाने वाली बाइट काउंट हैं। सभी सॉफ़्टवेयर 16 से बड़ी काउंट का सामना नहीं कर पाते।<ref name="Xilinx_2010_MCS" />#
# ''बाइट काउंट'', दो हेक्स अंक (एक हेक्स अंक जोड़ी), डेटा फ़ील्ड में बाइट्स (हेक्स अंक जोड़े) की संख्या दर्शाती है। अधिकतम बाइट काउंट 255 (0xFF) है। 8 (0x08),<ref name="Roche_2000" />16 (0x10)<ref name="Roche_2000" />और 32 (0x20) सामान्यतः उपयोग की जाने वाली बाइट काउंट हैं। सभी सॉफ़्टवेयर 16 से बड़ी काउंट का सामना नहीं कर पाते।<ref name="Xilinx_2010_MCS" />  
# ''एड्रेस'', चार हेक्स अंक, डेटा के 16-बिट आरंभिक मेमोरी एड्रेस ऑफसेट का प्रतिनिधित्व करते हैं। डेटा के भौतिक पते की काउंट इस ऑफसेट को पहले से स्थापित आधार पते में जोड़कर की जाती है, इस टाइप 16-बिट पते की 64 किलोबाइट सीमा से परे मेमोरी एड्रेसिंग की अनुमति मिलती है। आधार एड्रेस, जो डिफ़ॉल्ट रूप से शून्य होता है, विभिन्न टाइप के रिकॉर्ड द्वारा बदला जा सकता है। आधार पते और एड्रेस ऑफसेट को हमेशा [[बड़े एंडियन]] मान के रूप में व्यक्त किया जाता है।
# ''एड्रेस'', चार हेक्स अंक, डेटा के 16-बिट आरंभिक मेमोरी एड्रेस ऑफसेट का प्रतिनिधित्व करते हैं। डेटा के भौतिक एड्रेस की काउंट इस ऑफसेट को पहले से स्थापित आधार एड्रेस में जोड़कर की जाती है, इस टाइप 16-बिट एड्रेस की 64 किलोबाइट सीमा से परे मेमोरी एड्रेसिंग की अनुमति मिलती है। आधार एड्रेस, जो डिफ़ॉल्ट रूप से शून्य होता है, विभिन्न टाइप के रिकॉर्ड द्वारा बदला जा सकता है। आधार एड्रेस और एड्रेस ऑफसेट को निरंतर [[बड़े एंडियन]] मान के रूप में व्यक्त किया जाता है।
# ''रिकॉर्ड टाइप'' (नीचे #रिकॉर्ड टाइप देखें), दो हेक्स अंक, {{Intel HEX|||00||}} को {{Intel HEX|||05||}}, डेटा फ़ील्ड का अर्थ परिभाषित करना।
# ''रिकॉर्ड टाइप'' (नीचे रिकॉर्ड टाइप देखें), दो हेक्स अंक, {{Intel HEX|||00||}} को {{Intel HEX|||05||}}, डेटा फ़ील्ड का अर्थ परिभाषित करना।
# ''डेटा'', डेटा के n बाइट्स का एक क्रम, जिसे ''2n हेक्स'' अंकों द्वारा दर्शाया जाता है। कुछ रिकॉर्ड इस फ़ील्ड को छोड़ देते हैं (n शून्य के बराबर है)। डेटा बाइट्स का अर्थ और व्याख्या एप्लिकेशन पर निर्भर करती है। (4-बिट डेटा को या तो बाइट्स के निचले या ऊपरी आधे हिस्से में संग्रहीत करना होगा, यानी, एक बाइट में केवल एक एड्रेस योग्य डेटा आइटम होता है।<ref name="Intel_1977" />
# ''डेटा'', डेटा के n बाइट्स का एक क्रम, जिसे ''2n हेक्स'' अंकों द्वारा दर्शाया जाता है। कुछ रिकॉर्ड इस फ़ील्ड को छोड़ देते हैं (n शून्य के बराबर है)। डेटा बाइट्स का अर्थ और व्याख्या एप्लिकेशन पर निर्भर करती है। (4-बिट डेटा को या तो बाइट्स के निचले या ऊपरी आधे हिस्से में संग्रहीत करना होगा, यानी, एक बाइट में केवल एक एड्रेस योग्य डेटा आइटम होता है।<ref name="Intel_1977" />
# [[ अंततः, | अंततः,]] , दो हेक्स अंक, एक परिकलित मान जिसका उपयोग यह सत्यापित करने के लिए किया जा सकता है कि रिकॉर्ड में कोई त्रुटि नहीं है।
# [[ अंततः, | अंततः,]] , दो हेक्स अंक, एक परिकलित मान जिसका उपयोग यह सत्यापित करने के लिए किया जा सकता है कि रिकॉर्ड में कोई त्रुटि नहीं है।
Line 30: Line 29:


====चेकसम काउंट====
====चेकसम काउंट====
एक रिकॉर्ड का चेकसम बाइट, चेकसम से पहले के रिकॉर्ड में सभी डिकोड किए गए बाइट मानों के योग के कम से कम महत्वपूर्ण बाइट (एलएसबी) का दो पूरक है। इसकी गणना डिकोड किए गए बाइट मानों को जोड़कर और योग के एलएसबी को निकालकर (यानी, डेटा चेकसम) करके की जाती है, और फिर एलएसबी के दो पूरक की गणना की जाती है (उदाहरण के लिए, इसके बिट्स को उलटा करके और एक जोड़कर)।
एक रिकॉर्ड का चेकसम बाइट, चेकसम से पहले के रिकॉर्ड में सभी डिकोड किए गए बाइट मानों के योग के कम से कम महत्वपूर्ण बाइट (LSB) का दो पूरक है। इसकी गणना डिकोड किए गए बाइट मानों को जोड़कर और योग के LSB को निकालकर (यानी, डेटा चेकसम) करके की जाती है, और फिर LSB के दो पूरक की गणना की जाती है (उदाहरण के लिए, इसके बिट्स को उलटा करके और एक जोड़कर)।


उदाहरण के लिए, रिकॉर्ड के मामले में {{Intel HEX|03|0030|00|02337A|1E}}, डिकोड किए गए बाइट मानों का योग है {{Intel HEX|03||||}} + {{Intel HEX||00|||}} + {{Intel HEX||30|||}} + {{Intel HEX|||00||}} + {{Intel HEX||||02|}} + {{Intel HEX||||33|}} + {{Intel HEX||||7A|}} = <code>E2</code>, जिसका एलएसबी मूल्य है <code>E2</code>. दोनों का पूरक <code>E2</code> है {{Intel HEX|||||1E}}, जो रिकॉर्ड के अंत में प्रदर्शित होने वाला चेकसम बाइट है।
उदाहरण के लिए, रिकॉर्ड के स्थिति में {{Intel HEX|03|0030|00|02337A|1E}}, डिकोड किए गए बाइट मानों का योग है {{Intel HEX|03||||}} + {{Intel HEX||00|||}} + {{Intel HEX||30|||}} + {{Intel HEX|||00||}} + {{Intel HEX||||02|}} + {{Intel HEX||||33|}} + {{Intel HEX||||7A|}} = <code>E2</code>, जिसका LSB मूल्य है <code>E2</code>. दोनों का पूरक <code>E2</code> है {{Intel HEX|||||1E}}, जो रिकॉर्ड के अंत में प्रदर्शित होने वाला चेकसम बाइट है।


किसी रिकॉर्ड की वैधता को उसके चेकसम की काउंट करके और यह सत्यापित करके जांचा जा सकता है कि काउंट किया गया चेकसम रिकॉर्ड में दिखाई देने वाले चेकसम के बराबर है; यदि चेकसम भिन्न हैं तो एक त्रुटि का संकेत दिया जाता है। चूँकि रिकॉर्ड का चेकसम बाइट दोनों का पूरक है - और इसलिए डेटा चेकसम का योगात्मक व्युत्क्रम -, इस प्रक्रिया को रिकॉर्ड के चेकसम सहित सभी डिकोड किए गए बाइट मानों के योग तक कम किया जा सकता है, और यह सत्यापित किया जा सकता है कि योग का एलएसबी शून्य है। जब पिछले उदाहरण पर लागू किया जाता है, तो यह विधि निम्नलिखित परिणाम उत्पन्न करती है: {{Intel HEX|03||||}} + {{Intel HEX||00|||}} + {{Intel HEX||30|||}} + {{Intel HEX|||00||}} + {{Intel HEX||||02|}} + {{Intel HEX||||33|}} + {{Intel HEX||||7A|}} + {{Intel HEX|||||1E}} = <code>100</code>, जिसका एलएसबी मूल्य <code>00</code>है।
किसी रिकॉर्ड की वैधता को उसके चेकसम की काउंट करके और यह सत्यापित करके जांचा जा सकता है कि काउंट किया गया चेकसम रिकॉर्ड में दिखाई देने वाले चेकसम के बराबर है; यदि चेकसम भिन्न हैं तो एक त्रुटि का संकेत दिया जाता है। चूँकि रिकॉर्ड का चेकसम बाइट दोनों का पूरक है - और इसलिए डेटा चेकसम का योगात्मक व्युत्क्रम -, इस प्रक्रिया को रिकॉर्ड के चेकसम सहित सभी डिकोड किए गए बाइट मानों के योग तक कम किया जा सकता है, और यह सत्यापित किया जा सकता है कि योग का LSB शून्य है। जब पिछले उदाहरण पर लागू किया जाता है, तो यह विधि निम्नलिखित परिणाम उत्पन्न करती है: {{Intel HEX|03||||}} + {{Intel HEX||00|||}} + {{Intel HEX||30|||}} + {{Intel HEX|||00||}} + {{Intel HEX||||02|}} + {{Intel HEX||||33|}} + {{Intel HEX||||7A|}} + {{Intel HEX|||||1E}} = <code>100</code>, जिसका LSB मूल्य <code>00</code>है।


===टेक्स्ट लाइन टर्मिनेटर===
===टेक्स्ट लाइन टर्मिनेटर===
इंटेल HEX रिकॉर्ड आमतौर पर एक या अधिक ASCII लाइन समाप्ति वर्णों द्वारा अलग किए जाते हैं ताकि प्रत्येक रिकॉर्ड एक टेक्स्ट लाइन पर अकेला दिखाई दे। यह रिकॉर्ड को दृश्य रूप से सीमांकित करके पठनीयता को बढ़ाता है और यह रिकॉर्ड के बीच पैडिंग भी प्रदान करता है जिसका उपयोग मशीन [[ पदच्छेद ]] दक्षता में सुधार के लिए किया जा सकता है। हालाँकि, लाइन समाप्ति वर्ण वैकल्पिक हैं, क्योंकि '{{Background color|#FFFFCC|:}}' का उपयोग किसी रिकॉर्ड की शुरुआत का एड्रेस लगाने के लिए किया जाता है।<ref name="Intel_1977"/><ref name="DRI_1981_CPM86-SG"/><ref name="DRI_1982_CPM-M"/><ref name="DRI_1984_CCPM-PRG"/><ref name="DataIO_1980_OG"/><ref name="DataIO_1987_TFF"/><ref name="Fujitsu_2001"/>
इंटेल हेक्स रिकॉर्ड सामान्यतः एक या अधिक ASCII लाइन समाप्ति वर्णों द्वारा अलग किए जाते हैं ताकि प्रत्येक रिकॉर्ड एक टेक्स्ट लाइन पर अकेला दिखाई दे। यह रिकॉर्ड्स को दृश्य रूप से सीमित करके पठनीयता को बढ़ाता है और यह रिकॉर्ड्स के बीच पैडिंग भी प्रदान करता है जिसका उपयोग मशीन पार्सिंग दक्षता में सुधार के लिए किया जा सकता है। हालाँकि, पंक्ति समाप्ति वर्ण वैकल्पिक हैं, क्योंकि ':' का उपयोग रिकॉर्ड की आरंभ का पता लगाने के लिए किया जाता है।<ref name="Intel_1977"/><ref name="DRI_1981_CPM86-SG"/><ref name="DRI_1982_CPM-M"/><ref name="DRI_1984_CCPM-PRG"/><ref name="DataIO_1980_OG"/><ref name="DataIO_1987_TFF"/><ref name="Fujitsu_2001"/>


HEX रिकॉर्ड बनाने वाले प्रोग्राम आमतौर पर लाइन टर्मिनेशन वर्णों का उपयोग करते हैं जो उनके [[ऑपरेटिंग सिस्टम]] की परंपराओं के अनुरूप होते हैं। उदाहरण के लिए, लिनक्स प्रोग्राम एकल एलएफ (लाइन फ़ीड, हेक्स वैल्यू) का उपयोग करते हैं <code>0A</code>) लाइनों को समाप्त करने के लिए वर्ण, जबकि विंडोज़ प्रोग्राम सीआर (कैरिज रिटर्न, हेक्स वैल्यू) का उपयोग करते हैं <code>0D</code>) के बाद एक एलएफ।
हेक्स रिकॉर्ड बनाने वाले प्रोग्राम सामान्यतः लाइन टर्मिनेशन वर्णों का उपयोग करते हैं जो उनके [[ऑपरेटिंग सिस्टम]] की परंपराओं के अनुरूप होते हैं। उदाहरण के लिए, लिनक्स प्रोग्राम लाइनों को समाप्त करने के लिए एकल LF (लाइन फ़ीड, हेक्स वैल्यू <code>0A</code>) वर्ण का उपयोग करते हैं, जबकि विंडोज प्रोग्राम LF के बाद सीआर (कैरिज रिटर्न, हेक्स वैल्यू <code>0D</code>) का उपयोग करते हैं।


===रिकॉर्ड टाइप===
===रिकॉर्ड टाइप===
Intel HEX के छह मानक रिकॉर्ड टाइप हैं:<ref name="Intel_1988_Spec"/>
इंटेल हेक्स के छह मानक रिकॉर्ड प्रकार हैं:<ref name="Intel_1988_Spec"/>


{| class="wikitable"
{| class="wikitable"
|-
|-
! Hex code
! हेक्स कोड
! Record type
! रिकार्ड टाइप
! Description
! विवरण
! Example
! उदाहरण
|- valign="top"
|- valign="top"
| align="center" | {{Intel HEX|||00||}}
| align="center" | {{Intel HEX|||00||}}
| आंकड़े
| सांख्यिकी
| बाइट काउंट रिकॉर्ड में डेटा बाइट्स की संख्या निर्दिष्ट करती है। उदाहरण है {{Intel HEX|0B||||}} (ग्यारह) डेटा बाइट्स। डेटा के लिए 16-बिट प्रारंभिक एड्रेस (उदाहरण में प्रारंभ होने वाले पते पर {{Intel HEX||0010|||}}) और डेटा ({{Intel HEX||||61|}}, {{Intel HEX||||64|}}, {{Intel HEX||||64|}}, {{Intel HEX||||72|}}, {{Intel HEX||||65|}}, {{Intel HEX||||73|}}, {{Intel HEX||||73|}}, {{Intel HEX||||20|}}, {{Intel HEX||||67|}}, {{Intel HEX||||61|}}, {{Intel HEX||||70|}}).  
| बाइट काउंट रिकॉर्ड में डेटा बाइट्स की संख्या निर्दिष्ट करती है। उदाहरण है {{Intel HEX|0B||||}} (ग्यारह) डेटा बाइट्स। डेटा के लिए 16-बिट प्रारंभिक एड्रेस (उदाहरण में प्रारंभ होने वाले एड्रेस पर {{Intel HEX||0010|||}}) और डेटा ({{Intel HEX||||61|}}, {{Intel HEX||||64|}}, {{Intel HEX||||64|}}, {{Intel HEX||||72|}}, {{Intel HEX||||65|}}, {{Intel HEX||||73|}}, {{Intel HEX||||73|}}, {{Intel HEX||||20|}}, {{Intel HEX||||67|}}, {{Intel HEX||||61|}}, {{Intel HEX||||70|}}).  
| {{Intel HEX|0B|0010|00|6164647265737320676170|A7}}
| {{Intel HEX|0B|0010|00|6164647265737320676170|A7}}
|- वैलाइन = शीर्ष
|- वैलाइन = शीर्ष
| संरेखित = केंद्र | {{Intel HEX|||01||}}
| संरेखित = केंद्र | {{Intel HEX|||01||}}
| फाइल समाप्त
| फाइल समाप्त
| फ़ाइल के अंतिम रिकॉर्ड में प्रति फ़ाइल ठीक एक बार आना चाहिए। बाइट काउंट है {{Intel HEX|00||||}}, एड्रेस फ़ील्ड आम तौर पर है {{Intel HEX||0000|||}} और डेटा फ़ील्ड छोड़ दिया गया है।
| फ़ाइल के अंतिम रिकॉर्ड में प्रति फ़ाइल ठीक एक बार आना चाहिए। बाइट काउंट है {{Intel HEX|00||||}}, एड्रेस फ़ील्ड सामान्यतः है {{Intel HEX||0000|||}} और डेटा फ़ील्ड छोड़ दिया गया है।
| {{Intel HEX|00|0000|01||FF}}
| {{Intel HEX|00|0000|01||FF}}
|- वैलाइन = शीर्ष
|- वैलाइन = शीर्ष
| संरेखित = केंद्र | {{Intel HEX|||02||}}
| संरेखित = केंद्र | {{Intel HEX|||02||}}
| विस्तारित खंड एड्रेस
| विस्तारित खंड एड्रेस
| बाइट काउंट हमेशा होती है {{Intel HEX|02||||}}, एड्रेस फ़ील्ड (आमतौर पर {{Intel HEX||0000|||}}) को नजरअंदाज कर दिया जाता है और डेटा फ़ील्ड में 16-बिट खंड आधार एड्रेस होता है। इसे 16 से गुणा किया जाता है और डेटा के लिए शुरुआती एड्रेस बनाने के लिए प्रत्येक बाद के डेटा रिकॉर्ड पते में जोड़ा जाता है। यह एड्रेस स्थान के एक [[mebibyte]] (1048576 बाइट्स) तक संबोधित करने की अनुमति देता है।
| बाइट काउंट निरंतर होती है {{Intel HEX|02||||}}, एड्रेस फ़ील्ड (सामान्यतः {{Intel HEX||0000|||}}) को नजरअंदाज कर दिया जाता है और डेटा फ़ील्ड में 16-बिट खंड आधार एड्रेस होता है। इसे 16 से गुणा किया जाता है और डेटा के लिए प्रारंभिक एड्रेस बनाने के लिए प्रत्येक बाद के डेटा रिकॉर्ड एड्रेस में जोड़ा जाता है। यह एड्रेस स्थान के एक [[mebibyte]] (1048576 बाइट्स) तक संबोधित करने की अनुमति देता है।
| {{Intel HEX|02|0000|02|1200|EA}}
| {{Intel HEX|02|0000|02|1200|EA}}
|- वैलाइन = शीर्ष
|- वैलाइन = शीर्ष
| संरेखित = केंद्र | {{Intel HEX|||03||}}
| संरेखित = केंद्र | {{Intel HEX|||03||}}
| प्रारंभ खंड एड्रेस
| प्रारंभ खंड एड्रेस
| 80x86 प्रोसेसर के लिए, प्रारंभिक निष्पादन एड्रेस निर्दिष्ट करता है। बाइट काउंट हमेशा होती है {{Intel HEX|04||||}}, एड्रेस फ़ील्ड है {{Intel HEX||0000|||}} और पहले दो डेटा बाइट्स [[ कोड खंड ]] मान हैं, बाद वाले दो निर्देश सूचक मान हैं। निष्पादन इस पते पर शुरू होना चाहिए.
| 80x86 प्रोसेसर के लिए, प्रारंभिक निष्पादन एड्रेस निर्दिष्ट करता है। बाइट काउंट निरंतर होती है {{Intel HEX|04||||}}, एड्रेस फ़ील्ड है {{Intel HEX||0000|||}} और पहले दो डेटा बाइट्स [[ कोड खंड |कोड ब्लॉक]] मान हैं, बाद वाले दो निर्देश सूचक मान हैं। निष्पादन इस एड्रेस पर प्रारम्भ होना चाहिए.
| {{Intel HEX|04|0000|03|00003800|C1}}
| {{Intel HEX|04|0000|03|00003800|C1}}
|- वैलाइन = शीर्ष
|- वैलाइन = शीर्ष
| संरेखित = केंद्र | {{Intel HEX|||04||}}
| संरेखित = केंद्र | {{Intel HEX|||04||}}
| विस्तारित रैखिक एड्रेस
| विस्तारित रैखिक एड्रेस
| 32 बिट एड्रेसिंग (4 GiB तक) की अनुमति देता है। बाइट काउंट हमेशा होती है {{Intel HEX|02||||}} और एड्रेस फ़ील्ड को अनदेखा कर दिया जाता है (आमतौर पर)। {{Intel HEX||0000|||}}). दो डेटा बाइट्स (बड़े एंडियन) बाद के सभी प्रकारों के लिए 32 बिट निरपेक्ष पते के ऊपरी 16 बिट्स निर्दिष्ट करते हैं {{Intel HEX|||00||}} अभिलेख; ये ऊपरी एड्रेस बिट्स अगले तक लागू होते हैं {{Intel HEX|||04||}} अभिलेख। किसी टाइप के लिए पूर्ण एड्रेस {{Intel HEX|||00||}} रिकॉर्ड नवीनतम के ऊपरी 16 एड्रेस बिट्स को मिलाकर बनाया गया है {{Intel HEX|||04||}} निम्न 16 एड्रेस बिट्स के साथ रिकॉर्ड करें {{Intel HEX|||00||}} अभिलेख। यदि एक टाइप {{Intel HEX|||00||}}रिकॉर्ड के पहले कोई टाइप नहीं है {{Intel HEX|||04||}} रिकॉर्ड करता है तो इसके ऊपरी 16 एड्रेस बिट्स डिफ़ॉल्ट रूप से 0000 होते हैं।
| 32 बिट एड्रेसिंग (4 GiB तक) की अनुमति देता है। बाइट काउंट निरंतर होती है {{Intel HEX|02||||}} और एड्रेस फ़ील्ड को अनदेखा कर दिया जाता है (सामान्यतः)। {{Intel HEX||0000|||}}). दो डेटा बाइट्स (बड़े एंडियन) बाद के सभी टाइप के लिए 32 बिट निरपेक्ष एड्रेस के ऊपरी 16 बिट्स निर्दिष्ट करते हैं {{Intel HEX|||00||}} अभिलेख; ये ऊपरी एड्रेस बिट्स अगले तक लागू होते हैं {{Intel HEX|||04||}} अभिलेख। किसी टाइप के लिए पूर्ण एड्रेस {{Intel HEX|||00||}} रिकॉर्ड नवीनतम के ऊपरी 16 एड्रेस बिट्स को मिलाकर बनाया गया है {{Intel HEX|||04||}} निम्न 16 एड्रेस बिट्स के साथ रिकॉर्ड करें {{Intel HEX|||00||}} अभिलेख। यदि एक टाइप {{Intel HEX|||00||}}रिकॉर्ड के पहले कोई टाइप नहीं है {{Intel HEX|||04||}} रिकॉर्ड करता है तो इसके ऊपरी 16 एड्रेस बिट्स डिफ़ॉल्ट रूप से 0000 होते हैं।
| {{Intel HEX|02|0000|04|0800|F2}}
| {{Intel HEX|02|0000|04|0800|F2}}
|- वैलाइन = शीर्ष
|- वैलाइन = शीर्ष
| संरेखित = केंद्र | {{Intel HEX|||05||}}
| संरेखित = केंद्र | {{Intel HEX|||05||}}
| रेखीय एड्रेस प्रारंभ करें
| रेखीय एड्रेस प्रारंभ करें
| बाइट काउंट हमेशा होती है {{Intel HEX|04||||}}, एड्रेस फ़ील्ड है {{Intel HEX||0000|||}}. चार डेटा बाइट्स 32-बिट एड्रेस वैल्यू (बिग-एंडियन) का प्रतिनिधित्व करते हैं। इसका समर्थन करने वाले सीपीयू के मामले में, यह 32-बिट एड्रेस वह एड्रेस है जिस पर निष्पादन शुरू होना चाहिए।
| बाइट काउंट निरंतर होती है {{Intel HEX|04||||}}, एड्रेस फ़ील्ड है {{Intel HEX||0000|||}}. चार डेटा बाइट्स 32-बिट एड्रेस वैल्यू (बिग-एंडियन) का प्रतिनिधित्व करते हैं। इसका समर्थन करने वाले सीपीयू के स्थिति में, यह 32-बिट एड्रेस वह एड्रेस है जिस पर निष्पादन प्रारम्भ होना चाहिए।
| {{Intel HEX|04|0000|05|000000CD|2A}}
| {{Intel HEX|04|0000|05|000000CD|2A}}
|}
|}
अन्य रिकॉर्ड प्रकारों का उपयोग वेरिएंट के लिए किया गया है, जिनमें शामिल हैं {{Intel HEX|||06||}} वेन और लेने द्वारा,<ref name="Beckler_2016"/> {{Intel HEX|||0A||}}, {{Intel HEX|||0B||}}, {{Intel HEX|||0C||}}, {{Intel HEX|||0D||}} और {{Intel HEX|||0E||}} [[बीबीसी]]/माइक्रो:बिट एजुकेशनल फाउंडेशन द्वारा,<ref name="BBC_2021_Universal"/>और {{Intel HEX|||81||}}, {{Intel HEX|||82||}}, {{Intel HEX|||83||}}, {{Intel HEX|||84||}}, {{Intel HEX|||85||}}, {{Intel HEX|||86||}}, {{Intel HEX|||87||}} और {{Intel HEX|||88||}}[[ डिजिटल अनुसंधान ]] द्वारा।<ref name="DRI_1983_CPM86-PG"/><ref name="DRI_1984_CCPM-PRG"/>
अन्य रिकॉर्ड टाइप का उपयोग वेरिएंट के लिए किया गया है, जिनमें {{Intel HEX|||06||}} वेन और लेने द्वारा,<ref name="Beckler_2016"/> {{Intel HEX|||0A||}}, {{Intel HEX|||0B||}}, {{Intel HEX|||0C||}}, {{Intel HEX|||0D||}} और {{Intel HEX|||0E||}} [[बीबीसी]]/माइक्रो:बिट एजुकेशनल फाउंडेशन द्वारा,<ref name="BBC_2021_Universal"/> और {{Intel HEX|||81||}}, {{Intel HEX|||82||}}, {{Intel HEX|||83||}}, {{Intel HEX|||84||}}, {{Intel HEX|||85||}}, {{Intel HEX|||86||}}, {{Intel HEX|||87||}} और {{Intel HEX|||88||}}[[ डिजिटल अनुसंधान ]]द्वारा सम्मिलित हैं।<ref name="DRI_1983_CPM86-PG"/><ref name="DRI_1984_CCPM-PRG"/>
 
===नामांकित फॉर्मेट===
 
1973/1974 में मूल 4-बिट/8-बिट इंटेलेक हेक्स पेपर टेप फॉर्मेट और इंटेलेक हेक्स कंप्यूटर पंच्ड कार्ड फॉर्मेट केवल एक रिकॉर्ड प्रकार 00 का समर्थन करता था।<ref name="Intel_1973_Intellec8" /><ref name="Intel_1974_MOD8" /><ref name="Intel_1974_PLM" /> रिकॉर्ड प्रकार {{Intel HEX|||01||}}.<ref name="Intel_1977" /> का भी समर्थन करने के लिए 1975 के आसपास इसका विस्तार किया गया था इसमें प्रतीकात्मक डिबगिंग के लिए एक प्रतीक तालिका वाला एक वैकल्पिक हेडर सम्मिलित हो सकता है,<ref name="Intel_1974_PLM" /><ref name="Hennig-Roleff_1993" /><ref name="Roche_2000" /> कोलन से पहले के रिकॉर्ड में सभी वर्णों को अनदेखा कर दिया जाता है।<ref name="Intel_1977" /><ref name="DRI_1981_CPM86-SG" />
==={{anchor|I4|I8|I16|I32}}नामांकित फॉर्मेट===
1973/1974 में मूल 4-बिट/8-बिट इंटेलेक हेक्स पेपर टेप फॉर्मेट और इंटेलेक हेक्स कंप्यूटर पंच्ड कार्ड फॉर्मेट केवल एक रिकॉर्ड टाइप का समर्थन करता था {{Intel HEX|||00||}}.<ref name="Intel_1973_Intellec8"/><ref name="Intel_1974_MOD8"/><ref name="Intel_1974_PLM"/>1975 के आसपास इसका विस्तार किया गया{{when|date=May 2022|reason=It would be great if we could narrow this down to an exact year, possibly even a month and back it up with a reliable source and/or the original publication introducing it.}}रिकॉर्ड टाइप का भी समर्थन करने के लिए {{Intel HEX|||01||}}.<ref name="Intel_1977"/>इसमें [[प्रतीकात्मक डिबगिंग]] के लिए प्रतीक तालिका वाला एक वैकल्पिक हेडर शामिल हो सकता है,<ref name="Intel_1974_PLM"/><ref name="Hennig-Roleff_1993"/><ref name="Roche_2000"/>किसी रिकॉर्ड में कोलन से पहले के सभी वर्णों को अनदेखा कर दिया जाता है।<ref name="Intel_1977"/><ref name="DRI_1981_CPM86-SG"/>


1978 के आसपास{{when|date=May 2022|reason=It would be great if we could narrow this down to an exact year, possibly even a month and back it up with a reliable source and/or the original publication introducing it.}}, इंटेल ने नए रिकॉर्ड टाइप पेश किए {{Intel HEX|||02||}} और {{Intel HEX|||03||}} (तत्कालीन नए [[8086]]/[[8088]] प्रोसेसर के खंडित एड्रेस स्थान के लिए समर्थन जोड़ने के लिए) उनके विस्तारित इंटेलेक हेक्स फॉर्मेट में।{{when|date=May 2022|reason=What is still missing is reliable information when the record types 0x04 and 0x05 for 32-bit addressing where introduced by Intel. It would be great if we could back this up with a pointer to the original publication introducing it.}}
1978 के आसपास, इंटेल ने अपने विस्तारित इंटेललेक हेक्स फॉर्मेट में नए रिकॉर्ड प्रकार {{Intel HEX|||02||}} और {{Intel HEX|||03||}} (तत्कालीन नए [[8086]]/[[8088]] प्रोसेसर के खंडित पता स्थान के लिए समर्थन जोड़ने के लिए) प्रस्तुत किया था।


कभी-कभी HEX फ़ाइलों के प्रारूपों को दर्शाने के लिए विशेष नामों का उपयोग किया जाता है जो रिकॉर्ड प्रकारों के विशिष्ट उपसमूहों को नियोजित करते हैं। उदाहरण के लिए:
कभी-कभी हेक्स फ़ाइलों के प्रारूपों को दर्शाने के लिए विशेष नामों का उपयोग किया जाता है जो रिकॉर्ड टाइप के विशिष्ट उपसमूहों को नियोजित करते हैं। उदाहरण के लिए:


* I8HEX फ़ाइलें केवल रिकॉर्ड प्रकारों का उपयोग करती हैं {{Intel HEX|||00||}} और {{Intel HEX|||01||}}
* I8HEX फ़ाइलें केवल रिकॉर्ड टाइप {{Intel HEX|||00||}} और {{Intel HEX|||01||}} का उपयोग करती हैं।
* I16HEX फ़ाइलें केवल रिकॉर्ड प्रकारों का उपयोग करती हैं {{Intel HEX|||00||}} द्वारा {{Intel HEX|||03||}}<ref name="Intel_1980_FU-UG"/>* I32HEX फ़ाइलें केवल रिकॉर्ड प्रकारों का उपयोग करती हैं {{Intel HEX|||00||}}, {{Intel HEX|||01||}}, {{Intel HEX|||04||}}, और {{Intel HEX|||05||}}
* I16HEX फ़ाइलें केवल रिकॉर्ड टाइप  {{Intel HEX|||00||}} द्वारा {{Intel HEX|||03||}} का उपयोग करती हैं।<ref name="Intel_1980_FU-UG"/>
*I32HEX फ़ाइलें केवल रिकॉर्ड टाइप  {{Intel HEX|||00||}}, {{Intel HEX|||01||}}, {{Intel HEX|||04||}}, और {{Intel HEX|||05||}} का उपयोग करती हैं।


==फ़ाइल उदाहरण==
==फ़ाइल उदाहरण==
यह उदाहरण एक फ़ाइल दिखाता है जिसमें चार डेटा रिकॉर्ड हैं और उसके बाद फ़ाइल का अंत रिकॉर्ड है:  
यह उदाहरण एक फ़ाइल दिखाता है जिसमें चार डेटा रिकॉर्ड हैं और उसके बाद फ़ाइल का अंत रिकॉर्ड है: {{Intel HEX|10|0100|00|214601360121470136007EFE09D21901|40}} {{Intel HEX|10|0110|00|2146017E17C20001FF5F160021480119|28}} {{Intel HEX|10|0120|00|194E79234623965778239EDA3F01B2CA|A7}} {{Intel HEX|10|0130|00|3F0156702B5E712B722B732146013421|C7}} {{Intel HEX|00|0000|01||FF}}
{{Intel HEX|10|0100|00|214601360121470136007EFE09D21901|40}}  
{{Intel HEX|10|0110|00|2146017E17C20001FF5F160021480119|28}}  
{{Intel HEX|10|0120|00|194E79234623965778239EDA3F01B2CA|A7}}  
{{Intel HEX|10|0130|00|3F0156702B5E712B722B732146013421|C7}}  
{{Intel HEX|00|0000|01||FF}}


{{legend inline|#FFFFCC|Start code}}
{{legend inline|#FFFFCC|Start code}} {{legend inline|#CCFFCC|Byte count}} {{legend inline|#CCCCFF|Address}} {{legend inline|#FFCCCC|Record type}} {{legend inline|#CCFFFF|Data}} {{legend inline|#CCCCCC|Checksum}}
{{legend inline|#CCFFCC|Byte count}}
{{legend inline|#CCCCFF|Address}}
{{legend inline|#FFCCCC|Record type}}
{{legend inline|#CCFFFF|Data}}
{{legend inline|#CCCCCC|Checksum}}


=={{anchor|DRI|Mostek|TDL|TI|MS|ct|Universal}}वेरिएंट==
==वेरिएंट==
इंटेल के स्वयं के विस्तार के अलावा, कई तृतीय-पक्षों ने भी डिजिटल रिसर्च (तथाकथित डिजिटल रिसर्च हेक्स फॉर्मेट में) सहित इंटेल हेक्स फॉर्मेट के वेरिएंट और एक्सटेंशन को परिभाषित किया है<ref name="DRI_1983_CPM86-PG"/><ref name="DRI_1984_CCPM-PRG"/>), [[ज़ाइलॉग]], मोस्टेक,<ref name="Formaniak-Leitch_1977"/><ref name="Ogdin-Colvin-Pittman-Tubb_1977"/>तकनीकी डिज़ाइन लैब्स,<ref name="Ogdin-Colvin-Pittman-Tubb_1977"/><ref name="Kreidl_1981"/>[[ टेक्सस उपकरण ]]्स, [[माइक्रोचिप (कंपनी)]],<ref name="Kanda_2012"/>नहीं, वेन और लेने,<ref name="Beckler_2016"/>और बीबीसी/माइक्रो:बिट एजुकेशनल फाउंडेशन (अपने यूनिवर्सल हेक्स फॉर्मेट के साथ)<ref name="BBC_2021_Universal"/>). इनमें प्रोग्राम प्रवेश बिंदुओं और रजिस्टर सामग्री, डेटा फ़ील्ड में एक स्वैप किए गए बाइट ऑर्डर, अप्रयुक्त क्षेत्रों के लिए मान भरने, फ़्यूज़ बिट्स और अन्य अंतरों के बारे में जानकारी हो सकती है।