इंटेल हेक्स: Difference between revisions
From Vigyanwiki
No edit summary |
|||
| (5 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| | {{Distinguish|इंटेल हेक्साडेसिमल नोटेशन}} | ||
{{Infobox file format | {{Infobox file format | ||
|name = | |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"/> इसका उपयोग | '''इंटेल हेक्साडेसिमल ऑब्जेक्ट फ़ाइल फॉर्मेट, इंटेल हेक्स फॉर्मेट''' या '''इंटेलेक हेक्स''' एक फ़ाइल फॉर्मेट है जो [[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 की आरंभ में, फ़ाइल एक्सटेंशन हेक्स का उपयोग करते हुए, इस फॉर्मेट का उपयोग MCS सीरीज II ISIS-II सिस्टम द्वारा किया गया था।<ref name="Feichtinger_1987"/> कई PROM और EPROM प्रोग्रामिंग उपकरणों ने इस फॉर्मेट को स्वीकार किया। | ||
==फॉर्मेट== | ==फॉर्मेट== | ||
| Line 17: | Line 16: | ||
एक [[रिकॉर्ड (कंप्यूटर विज्ञान)|रिकॉर्ड]] (टेक्स्ट की लाइन) में छह फ़ील्ड (भाग) होते हैं जो बाएं से दाएं क्रम में दिखाई देते हैं:<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" /> वास्तव में, विनिर्देश के बहुत | # ''स्टार्ट कोड'', एक वर्ण, एक 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) | # ''बाइट काउंट'', दो हेक्स अंक (एक हेक्स अंक जोड़ी), डेटा फ़ील्ड में बाइट्स (हेक्स अंक जोड़े) की संख्या दर्शाती है। अधिकतम बाइट काउंट 255 (0xFF) है। 8 (0x08),<ref name="Roche_2000" />16 (0x10)<ref name="Roche_2000" />और 32 (0x20) सामान्यतः उपयोग की जाने वाली बाइट काउंट हैं। सभी सॉफ़्टवेयर 16 से बड़ी काउंट का सामना नहीं कर पाते।<ref name="Xilinx_2010_MCS" /> | ||
# ''एड्रेस'', चार हेक्स अंक, डेटा के 16-बिट आरंभिक मेमोरी एड्रेस ऑफसेट का प्रतिनिधित्व करते हैं। डेटा के भौतिक | # ''एड्रेस'', चार हेक्स अंक, डेटा के 16-बिट आरंभिक मेमोरी एड्रेस ऑफसेट का प्रतिनिधित्व करते हैं। डेटा के भौतिक एड्रेस की काउंट इस ऑफसेट को पहले से स्थापित आधार एड्रेस में जोड़कर की जाती है, इस टाइप 16-बिट एड्रेस की 64 किलोबाइट सीमा से परे मेमोरी एड्रेसिंग की अनुमति मिलती है। आधार एड्रेस, जो डिफ़ॉल्ट रूप से शून्य होता है, विभिन्न टाइप के रिकॉर्ड द्वारा बदला जा सकता है। आधार एड्रेस और एड्रेस ऑफसेट को निरंतर [[बड़े एंडियन]] मान के रूप में व्यक्त किया जाता है। | ||
# ''रिकॉर्ड टाइप'' (नीचे | # ''रिकॉर्ड टाइप'' (नीचे रिकॉर्ड टाइप देखें), दो हेक्स अंक, {{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>, जिसका LSB मूल्य है <code>E2</code>. दोनों का पूरक <code>E2</code> है {{Intel HEX|||||1E}}, जो रिकॉर्ड के अंत में प्रदर्शित होने वाला चेकसम बाइट है। | ||
किसी रिकॉर्ड की वैधता को उसके चेकसम की काउंट करके और यह सत्यापित करके जांचा जा सकता है कि काउंट किया गया चेकसम रिकॉर्ड में दिखाई देने वाले चेकसम के बराबर है; यदि चेकसम भिन्न हैं तो एक त्रुटि का संकेत दिया जाता है। चूँकि रिकॉर्ड का चेकसम बाइट दोनों का पूरक है - और इसलिए डेटा चेकसम का योगात्मक व्युत्क्रम -, इस प्रक्रिया को रिकॉर्ड के चेकसम सहित सभी डिकोड किए गए बाइट मानों के योग तक कम किया जा सकता है, और यह सत्यापित किया जा सकता है कि योग का | किसी रिकॉर्ड की वैधता को उसके चेकसम की काउंट करके और यह सत्यापित करके जांचा जा सकता है कि काउंट किया गया चेकसम रिकॉर्ड में दिखाई देने वाले चेकसम के बराबर है; यदि चेकसम भिन्न हैं तो एक त्रुटि का संकेत दिया जाता है। चूँकि रिकॉर्ड का चेकसम बाइट दोनों का पूरक है - और इसलिए डेटा चेकसम का योगात्मक व्युत्क्रम -, इस प्रक्रिया को रिकॉर्ड के चेकसम सहित सभी डिकोड किए गए बाइट मानों के योग तक कम किया जा सकता है, और यह सत्यापित किया जा सकता है कि योग का 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>है। | ||
===टेक्स्ट लाइन टर्मिनेटर=== | ===टेक्स्ट लाइन टर्मिनेटर=== | ||
इंटेल हेक्स रिकॉर्ड | इंटेल हेक्स रिकॉर्ड सामान्यतः एक या अधिक 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"/> | ||
हेक्स रिकॉर्ड बनाने वाले प्रोग्राम | हेक्स रिकॉर्ड बनाने वाले प्रोग्राम सामान्यतः लाइन टर्मिनेशन वर्णों का उपयोग करते हैं जो उनके [[ऑपरेटिंग सिस्टम]] की परंपराओं के अनुरूप होते हैं। उदाहरण के लिए, लिनक्स प्रोग्राम लाइनों को समाप्त करने के लिए एकल LF (लाइन फ़ीड, हेक्स वैल्यू <code>0A</code>) वर्ण का उपयोग करते हैं, जबकि विंडोज प्रोग्राम LF के बाद सीआर (कैरिज रिटर्न, हेक्स वैल्यू <code>0D</code>) का उपयोग करते हैं। | ||
===रिकॉर्ड टाइप=== | ===रिकॉर्ड टाइप=== | ||
| Line 53: | Line 52: | ||
| align="center" | {{Intel HEX|||00||}} | | align="center" | {{Intel HEX|||00||}} | ||
| सांख्यिकी | | सांख्यिकी | ||
| बाइट काउंट रिकॉर्ड में डेटा बाइट्स की संख्या निर्दिष्ट करती है। उदाहरण है {{Intel HEX|0B||||}} (ग्यारह) डेटा बाइट्स। डेटा के लिए 16-बिट प्रारंभिक एड्रेस (उदाहरण में प्रारंभ होने वाले | | बाइट काउंट रिकॉर्ड में डेटा बाइट्स की संख्या निर्दिष्ट करती है। उदाहरण है {{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|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|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||||}} और एड्रेस फ़ील्ड को अनदेखा कर दिया जाता है ( | | 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-बिट एड्रेस वैल्यू (बिग-एंडियन) का प्रतिनिधित्व करते हैं। इसका समर्थन करने वाले सीपीयू के | | बाइट काउंट निरंतर होती है {{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||}}[[ डिजिटल अनुसंधान ]]द्वारा | अन्य रिकॉर्ड टाइप का उपयोग वेरिएंट के लिए किया गया है, जिनमें {{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-बिट इंटेलेक हेक्स पेपर टेप | 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" /> | ||
1978 के आसपास, इंटेल ने अपने विस्तारित इंटेललेक हेक्स | 1978 के आसपास, इंटेल ने अपने विस्तारित इंटेललेक हेक्स फॉर्मेट में नए रिकॉर्ड प्रकार {{Intel HEX|||02||}} और {{Intel HEX|||03||}} (तत्कालीन नए [[8086]]/[[8088]] प्रोसेसर के खंडित पता स्थान के लिए समर्थन जोड़ने के लिए) प्रस्तुत किया था। | ||
कभी-कभी हेक्स फ़ाइलों के प्रारूपों को दर्शाने के लिए विशेष नामों का उपयोग किया जाता है जो रिकॉर्ड टाइप के विशिष्ट उपसमूहों को नियोजित करते हैं। उदाहरण के लिए: | कभी-कभी हेक्स फ़ाइलों के प्रारूपों को दर्शाने के लिए विशेष नामों का उपयोग किया जाता है जो रिकॉर्ड टाइप के विशिष्ट उपसमूहों को नियोजित करते हैं। उदाहरण के लिए: | ||
| Line 99: | Line 98: | ||
==वेरिएंट== | ==वेरिएंट== | ||
इंटेल के स्वयं के विस्तार के अलावा, कई थर्ड पार्टी ने भी इंटेल हेक्स | इंटेल के स्वयं के विस्तार के अलावा, कई थर्ड पार्टी ने भी इंटेल हेक्स फॉर्मेट के वेरिएंट और एक्सटेंशन को परिभाषित किया है, जिसमें डिजिटल रिसर्च (तथाकथित "डिजिटल रिसर्च हेक्स फॉर्मेट" <ref name="DRI_1984_CCPM-PRG" /><ref name="DRI_1983_CPM86-PG"/>, ज़िलॉग, मोस्टेक, [ सम्मिलित हैं।<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"/> इनमें प्रोग्राम प्रवेश बिंदुओं और रजिस्टर सामग्री, डेटा फ़ील्ड में एक स्वैप किए गए बाइट ऑर्डर, अप्रयुक्त क्षेत्रों के लिए मान भरने, फ़्यूज़ बिट्स और अन्य अंतरों के बारे में जानकारी हो सकती है। | ||
8086 प्रोसेसर के लिए डिजिटल रिसर्च हेक्स फॉर्मेट कोड, डेटा, स्टैक और अतिरिक्त सेगमेंट के बीच अंतर करने के लिए रिकॉर्ड टाइप जोड़कर सेगमेंट जानकारी का समर्थन करता है।<ref name="DRI_1981_CPM86-SG"/><ref name="DRI_1983_CPM86-PG"/><ref name="DRI_1984_CCPM-PRG"/> | 8086 प्रोसेसर के लिए डिजिटल रिसर्च हेक्स फॉर्मेट कोड, डेटा, स्टैक और अतिरिक्त सेगमेंट के बीच अंतर करने के लिए रिकॉर्ड टाइप जोड़कर सेगमेंट जानकारी का समर्थन करता है।<ref name="DRI_1981_CPM86-SG"/><ref name="DRI_1983_CPM86-PG"/><ref name="DRI_1984_CCPM-PRG"/> | ||
| Line 105: | Line 104: | ||
CP/M-80 (और [[मोटोरोला 6809]] के लिए [[XASM09]]) के लिए अधिकांश असेंबलर फ़ाइल के अंत को इंगित करने के लिए रिकॉर्ड टाइप 01h का उपयोग नहीं करते हैं, बल्कि इसके बजाय शून्य-लंबाई डेटा टाइप 00h प्रविष्टि का उपयोग करते हैं।<ref name="Kildall_1978"/> यह एकाधिक हेक्स फ़ाइलों के संयोजन को आसान बनाता है।<ref name="Zschocke_1987"/><ref name="Prior_1989"/><ref name="Arnold_2020_AS"/> | CP/M-80 (और [[मोटोरोला 6809]] के लिए [[XASM09]]) के लिए अधिकांश असेंबलर फ़ाइल के अंत को इंगित करने के लिए रिकॉर्ड टाइप 01h का उपयोग नहीं करते हैं, बल्कि इसके बजाय शून्य-लंबाई डेटा टाइप 00h प्रविष्टि का उपयोग करते हैं।<ref name="Kildall_1978"/> यह एकाधिक हेक्स फ़ाइलों के संयोजन को आसान बनाता है।<ref name="Zschocke_1987"/><ref name="Prior_1989"/><ref name="Arnold_2020_AS"/> | ||
टेक्सास इंस्ट्रूमेंट्स एक वेरिएंट को परिभाषित करता है जहां | टेक्सास इंस्ट्रूमेंट्स एक वेरिएंट को परिभाषित करता है जहां एड्रेस प्रोसेसर के रजिस्टरों की बिट-विड्थ पर आधारित होते हैं, बाइट्स पर नहीं। | ||
माइक्रोचिप वेरिएंट INTHX8S<ref name="Microchip_1994"/>(INHX8L,<ref name="Arnold_2020_AS"/> INHX8H<ref name="Arnold_2020_AS"/>), INHX8M,<ref name="Microchip_1994"/><ref name="Arnold_2020_AS"/><ref name="Lucid_INHX8M"/> INHX16<ref name="Microchip_1994"/> (INHX16M<ref name="Arnold_2020_AS"/> और INHX32<ref name="Lucid_INHX32"/> उनके [[पीआईसी माइक्रोकंट्रोलर]] को परिभाषित करता है। | माइक्रोचिप वेरिएंट INTHX8S<ref name="Microchip_1994"/> (INHX8L,<ref name="Arnold_2020_AS"/> INHX8H<ref name="Arnold_2020_AS"/>), INHX8M,<ref name="Microchip_1994"/><ref name="Arnold_2020_AS"/><ref name="Lucid_INHX8M"/> INHX16<ref name="Microchip_1994"/> (INHX16M<ref name="Arnold_2020_AS"/> और INHX32<ref name="Lucid_INHX32"/> उनके [[पीआईसी माइक्रोकंट्रोलर]] को परिभाषित करता है। | ||
अल्फ्रेड अर्नोल्ड के क्रॉस-मैक्रो-असेम्बलर AS,<ref name="Arnold_2020_AS"/> वर्नर हेनिग-रोलेफ़ के 8051-एमुलेटर SIM51,<ref name="Hennig-Roleff_1993"/> और मैथियास आर. पॉल के क्रॉस-कन्वर्टर BINTEL को इंटेल हेक्स | अल्फ्रेड अर्नोल्ड के क्रॉस-मैक्रो-असेम्बलर AS,<ref name="Arnold_2020_AS"/> वर्नर हेनिग-रोलेफ़ के 8051-एमुलेटर SIM51,<ref name="Hennig-Roleff_1993"/> और मैथियास आर. पॉल के क्रॉस-कन्वर्टर BINTEL को इंटेल हेक्स फॉर्मेट में एक्सटेंशन को परिभाषित करने के लिए भी जाना जाता है। | ||
== यह भी देखें == | == यह भी देखें == | ||
* बाइनरी-टू-टेक्स्ट एन्कोडिंग, एक सर्वेक्षण और एन्कोडिंग एल्गोरिदम की तुलना | * बाइनरी-टू-टेक्स्ट एन्कोडिंग, एक सर्वेक्षण और एन्कोडिंग एल्गोरिदम की तुलना | ||
| Line 170: | Line 169: | ||
* [https://pypi.python.org/pypi/bincopy bincopy] is a Python package for manipulating Intel हेक्स files. | * [https://pypi.python.org/pypi/bincopy bincopy] is a Python package for manipulating Intel हेक्स files. | ||
* [https://github.com/oliverbrehm/SwiftIntelHex SwiftIntelHex] - a Swift package to parse Intel हेक्स files for iOS and macOS. | * [https://github.com/oliverbrehm/SwiftIntelHex SwiftIntelHex] - a Swift package to parse Intel हेक्स files for iOS and macOS. | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page]] | ||
[[Category:CS1 Deutsch-language sources (de)]] | |||
[[Category:CS1 location test]] | |||
[[Category:Citation Style 1 templates|M]] | |||
[[Category:Collapse templates]] | |||
[[Category:Created On 25/07/2023]] | [[Category:Created On 25/07/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates based on the Citation/CS1 Lua module]] | |||
[[Category:Templates generating COinS|Cite magazine]] | |||
[[Category:T | |||