विधानसभा भाषा परिभाषा

एक विधानसभा भाषा क्या है?

असेंबली भाषा एक प्रकार की निम्न-स्तरीय प्रोग्रामिंग भाषा है जिसका उद्देश्य कंप्यूटर के हार्डवेयर के साथ सीधे संवाद करना है।मशीनी भाषा के विपरीत, जिसमें बाइनरी और हेक्साडेसिमल वर्ण होते हैं, असेंबली भाषाओं को मनुष्यों द्वारा पठनीय होने के लिए डिज़ाइन किया गया है।

निम्न-स्तरीय प्रोग्रामिंग भाषाएं जैसे असेंबली भाषा कंप्यूटर के अंतर्निहित हार्डवेयर और उच्च-स्तरीय प्रोग्रामिंग भाषाओं- जैसे कि पायथन या जावास्क्रिप्ट- के बीच एक आवश्यक सेतु है जिसमें आधुनिक सॉफ्टवेयर प्रोग्राम लिखे जाते हैं।

चाबी छीन लेना

  • असेंबली भाषा एक प्रकार की प्रोग्रामिंग भाषा है जो उच्च स्तरीय भाषाओं को मशीनी भाषा में अनुवाद करती है।
  • यह सॉफ्टवेयर प्रोग्राम और उनके अंतर्निहित हार्डवेयर प्लेटफॉर्म के बीच एक आवश्यक सेतु है।
  • कोड को प्रयोग करने योग्य मशीन निर्देश में बदलने के लिए असेंबली भाषा भाषा सिंटैक्स, लेबल, ऑपरेटरों और निर्देशों पर निर्भर करती है।
  • असेंबली भाषा एकल-पास या बहु-पास असेंबलरों से गुजर सकती है, प्रत्येक विशिष्ट उपयोग और लाभ के साथ।
  • आज, असेंबल भाषाएं शायद ही कभी सीधे लिखी जाती हैं, हालांकि वे अभी भी कुछ आला अनुप्रयोगों में उपयोग की जाती हैं जैसे कि जब प्रदर्शन की आवश्यकताएं विशेष रूप से अधिक होती हैं।

असेंबली लैंग्वेज कैसे काम करती हैं

मूल रूप से, कंप्यूटर द्वारा निष्पादित सबसे बुनियादी निर्देश बाइनरी कोड होते हैं, जिसमें एक और शून्य होते हैं।उन कोडों को सीधे कंप्यूटर के भौतिक सर्किट के माध्यम से चलने वाली बिजली के "चालू" और "बंद" राज्यों में अनुवादित किया जाता है।संक्षेप में, ये सरल कोड "मशीन भाषा" का आधार बनाते हैं, जो प्रोग्रामिंग भाषा की सबसे मौलिक विविधता है।

बेशक, कोई भी मानव स्पष्ट रूप से प्रोग्रामिंग वाले और शून्य द्वारा आधुनिक सॉफ्टवेयर प्रोग्राम बनाने में सक्षम नहीं होगा।इसके बजाय, मानव प्रोग्रामर को अमूर्तता की विभिन्न परतों पर भरोसा करना चाहिए जो स्वयं को अपने आदेशों को एक ऐसे प्रारूप में स्पष्ट करने की अनुमति दे सकते हैं जो मनुष्यों के लिए अधिक सहज हो।

विशेष रूप से, आधुनिक प्रोग्रामर तथाकथित "उच्च-स्तरीय भाषाओं" में कमांड जारी करते हैं, जो सहज ज्ञान युक्त वाक्य रचना का उपयोग करते हैं जैसे कि संपूर्ण अंग्रेजी शब्द और वाक्य, साथ ही तार्किक ऑपरेटर जैसे "और," "या," और "अन्य" जो हैं रोजमर्रा के उपयोग से परिचित।

अंततः, हालांकि, इन उच्च-स्तरीय आदेशों का मशीनी भाषा में अनुवाद करने की आवश्यकता है।मैन्युअल रूप से ऐसा करने के बजाय, प्रोग्रामर असेंबली भाषाओं पर भरोसा करते हैं जिसका उद्देश्य इन उच्च-स्तरीय और निम्न-स्तरीय भाषाओं के बीच स्वचालित रूप से अनुवाद करना है।पहली असेंबली भाषाएं 1940 के दशक में विकसित की गई थीं, और हालांकि आधुनिक प्रोग्रामर और आधुनिक प्राकृतिक भाषा प्रोसेसर असेंबली भाषाओं से निपटने में बहुत कम समय लगाते हैं, फिर भी वे कंप्यूटर के समग्र कामकाज के लिए आवश्यक हैं।

कंप्यूटिंग के शुरुआती दिनों में, सिस्टम प्रोग्रामिंग और एप्लिकेशन प्रोग्रामिंग दोनों पूरी तरह से असेंबली भाषा में होते थे।असेंबली भाषाओं के बिना, कई आधुनिक कंप्यूटर और उच्च-स्तरीय भाषाएँ जिनका हम आज उपयोग करते हैं, संभव नहीं होती।

विधानसभा भाषा के घटक

वाक्य - विन्यास

किसी भी प्रोग्राम भाषा में कोई भी कोड लिखते समय, नियमों का एक अवलोकन योग्य, विशिष्ट क्रम होता है जिसका पालन एक कंपाइलर को त्रुटि के बिना कोड को निष्पादित करने की अनुमति देने के लिए किया जाना चाहिए।इन नियमों को वाक्य-विन्यास के रूप में परिभाषित किया गया है, और इनमें मानदंड शामिल हैं जैसे कि स्वीकार्य वर्णों की अधिकतम संख्या, कौन से वर्ण कोड लाइनें शुरू होनी चाहिए, या कुछ निश्चित प्रतीकों "अर्थात अर्ध-कॉलन" का अर्थ क्या है।

लेबल

एक लेबल एक प्रतीक है जो उस पते का प्रतिनिधित्व करता है जहां एक निर्देश या डेटा संग्रहीत किया जाता है।इसका उद्देश्य एक बयान में संदर्भित होने पर गंतव्य के रूप में कार्य करना है।लेबल का उपयोग कहीं भी किया जा सकता है एक पते का उपयोग असेंबली भाषाओं में किया जा सकता है।एक प्रतीकात्मक लेबल में एक पहचानकर्ता होता है जिसके बाद एक कोलन होता है, जबकि संख्यात्मक लेबल में एक डिजिटल होता है जिसके बाद एक कोलन होता है।

ऑपरेटर्स

कमांड के रूप में भी जाना जाता है, ऑपरेटर तार्किक अभिव्यक्ति हैं जो लेबल फ़ील्ड के बाद होते हैं।इसके अलावा, इसके पहले कम से कम एक व्हाइट-स्पेस कैरेक्टर होना चाहिए।ऑपरेटर या तो opcode या निर्देश हो सकते हैं।ओपकोड सीधे मशीन के निर्देशों से मेल खाता है, और ऑपरेशन कोड में निर्देश से जुड़ा कोई भी रजिस्टर नाम शामिल होता है।वैकल्पिक रूप से, निर्देश संचालन कोड असेंबलर द्वारा ज्ञात निर्देश हैं।

आदेश

निर्देश असेंबलर को निर्देश हैं जो बताते हैं कि असेंबली प्रक्रिया के दौरान क्या कार्रवाई होनी चाहिए।निर्देशों में चर के लिए स्मृति घोषित करने या आरक्षित करने का महत्व है; अधिक गतिशील कार्य करने के लिए इन चरों को बाद में प्रक्रियाओं में वापस बुलाया जा सकता है।कार्यक्रमों को विभिन्न वर्गों में विभाजित करने के लिए निर्देशों का भी उपयोग किया जाता है।

मैक्रो

असेंबली भाषा मैक्रो एक टेम्प्लेट शू प्रारूप है जो कथनों की एक श्रृंखला या पैटर्न प्रस्तुत करता है।असेंबली भाषा के बयानों का यह क्रम कई अलग-अलग कार्यक्रमों के लिए सामान्य हो सकता है।मैक्रो परिभाषाओं की व्याख्या करने के लिए मैक्रो सुविधा का उपयोग किया जाता है, जबकि मैक्रो कॉल को स्रोत कोड में डाला जाता है जहां बयानों के मैक्रो सेट के बजाय "सामान्य" असेंबली कोड चला जाता।

स्मृति सहायक

एक निमोनिक एक ऑपरेशन के लिए एक संक्षिप्त नाम है।एक छोटा "ऑपोड" निर्दिष्ट करने के लिए प्रत्येक असेंबल प्रोग्राम निर्देश के लिए ऑपरेशन कोड में एक निमोनिक दर्ज किया जाता है जो कोड के एक बड़े, पूर्ण सेट का प्रतिनिधित्व करता है।उदाहरण के लिए, स्मरक "दो से गुणा करें" में कोड का एक पूरा सेट होता है जो निमोनिक को पूरा करता है।

उच्च आवृत्ति व्यापार

आज, असेंबली भाषाएं कंप्यूटर विज्ञान के छात्रों द्वारा अध्ययन का विषय बनी हुई हैं, ताकि उन्हें यह समझने में मदद मिल सके कि आधुनिक सॉफ्टवेयर अपने अंतर्निहित हार्डवेयर प्लेटफॉर्म से कैसे संबंधित है।कुछ मामलों में, प्रोग्रामर को असेंबली भाषाओं में लिखना जारी रखना चाहिए, जैसे कि जब प्रदर्शन की मांग विशेष रूप से अधिक हो, या जब प्रश्न में हार्डवेयर किसी भी मौजूदा उच्च-स्तरीय भाषाओं के साथ असंगत हो।

एक ऐसा उदाहरण जो वित्त के लिए प्रासंगिक है, कुछ वित्तीय फर्मों द्वारा उपयोग किए जाने वाले उच्च आवृत्ति व्यापार (एचएफटी) प्लेटफॉर्म हैं।इस बाजार में, एचएफटी ट्रेडिंग रणनीतियों को लाभदायक साबित करने के लिए लेनदेन की गति और सटीकता सबसे महत्वपूर्ण है।इसलिए, अपने प्रतिस्पर्धियों के खिलाफ बढ़त हासिल करने के लिए, कुछ एचएफटी फर्मों ने अपने ट्रेडिंग सॉफ्टवेयर को सीधे असेंबली भाषाओं में लिखा है, जिससे उच्च-स्तरीय भाषा से कमांड का मशीनी भाषा में अनुवाद करने की प्रतीक्षा करना अनावश्यक हो गया है।

बहुत से लोग मानते हैं कि असेंबली भाषाओं में सीखने की अवस्था सबसे तेज होती है और यह सीखने के लिए सबसे कठिन कंप्यूटिंग भाषा है।

फायदे और नुकसान

असेंबली भाषा को आमतौर पर उच्च स्तरीय भाषाओं की तुलना में तेजी से निष्पादित किया जा सकता है।असेंबली भाषा कोड के हटाए गए घटकों को सम्मिलित करना अपेक्षाकृत आसान है, और अन्य प्रकार की भाषाओं की तुलना में असेंबली भाषा को कार्य पूरा करने के लिए आमतौर पर कम निर्देशों की आवश्यकता होती है।

असेम्बली भाषाएँ भी अक्सर प्रोग्रामर द्वारा उपयोग की जाती हैं जो अपने कंप्यूटर पर अधिक नियंत्रण चाहते हैं क्योंकि असेंबली भाषाएँ आपको सीधे अपने हार्डवेयर में हेरफेर करने की अनुमति देती हैं।इसकी गति और महत्व के कारण, कुछ प्रोग्राम विशेष रूप से असेंबली भाषा का उपयोग करके लिखे जाते हैं क्योंकि कोड आमतौर पर छोटा रह सकता है।

असेंबली भाषाओं में कई कमियां होती हैं।असेंबली भाषा का उपयोग करके लिखे गए लंबे कार्यक्रमों में आमतौर पर भारी कंप्यूटिंग शक्ति की आवश्यकता होती है और इसे छोटे कंप्यूटरों पर नहीं चलाया जा सकता है।कुछ लोगों को असेंबली भाषा का सिंटैक्स याद रखना अधिक कठिन लग सकता है, और असेंबली भाषा का उपयोग करके कोड करने में कुछ अधिक समय लग सकता है क्योंकि यह अधिक जटिल है।इसके अलावा, असेंबली भाषा आमतौर पर विभिन्न कंप्यूटरों के विभिन्न प्रकार के बीच पोर्टेबल नहीं होती है; कंपनियों को स्विच करते समय कर्मचारी लाभ कैसे खो जाते हैं, इसी तरह, विभिन्न कंप्यूटरों में भाषाओं का मूल रूप से अनुवाद नहीं किया जा सकता है।

पेशेवरों
  • अन्य भाषाओं की तुलना में निष्पादन अधिक सरल हो सकता है

  • निष्पादन आमतौर पर अन्य भाषाओं की तुलना में तेज़ होता है

  • हार्डवेयर पर सीधे नियंत्रण की अनुमति देता है

  • अन्य भाषाओं की तुलना में कोड छोटा रह सकता है

दोष
  • उच्च-स्तरीय भाषाओं की तुलना में प्रोग्रामिंग करना अधिक चुनौतीपूर्ण हो सकता है

  • असेंबली भाषाओं का सिंटैक्स कठिन है

  • मशीनों के बीच पोर्टेबल नहीं

असेंबलरों के प्रकार

असेंबली भाषा को असेंबलर का उपयोग करके मशीनी भाषा में अनुवादित किया जाना चाहिए।दो प्राथमिक प्रकार के असेंबलर हैं।

एक सिंगल-पास असेंबलर एक प्रोग्राम को एक बार स्कैन करता है और एक समकक्ष बाइनरी प्रोग्राम बनाता है।इस प्रकार का असेंबलर कोड को एक स्मृति कोड तालिका में देखकर असेंबली भाषा कोड को मान्य करता है।एक सिंगल-पास असेंबलर अक्सर मल्टी-पास असेंबलर से तेज़ होता है, और आमतौर पर किसी भी मध्यवर्ती कोड को बनाने की आवश्यकता नहीं होती है।

एक मल्टी-पास असेंबलर का मतलब है कि असेंबलर एक से अधिक पास का उपयोग करता है।मल्टी-पास असेंबलर पहले पास में प्रत्येक प्रतीक और उनके प्रत्येक मान के साथ एक तालिका बनाते हैं, फिर नया कोड उत्पन्न करने के लिए भविष्य के पास में तालिका का उपयोग करते हैं।प्रत्येक अलग पास आमतौर पर एक अलग विशिष्ट कार्य को संभालता है।हालांकि आमतौर पर धीमी, मॉड्यूलर संरचनाओं वाले बहु-पास असेंबलरों को अक्सर विभिन्न मशीनों के लिए पुन: उपयोग किया जा सकता है।

विधानसभा भाषा कोड का उदाहरण

नीचे नेटवाइड असेंबलर (NASM) असेंबली भाषा कोड का एक उदाहरण है।

विधानसभा भाषा कोड का उदाहरण।

लोयोला मैरीमाउंट यूनिवर्सिटी

इस उदाहरण में, कोड के अंत में SYSCALL निर्देश मेमोरी के उस हिस्से को ट्रिगर करता है जहां ऑपरेटिंग सिस्टम सेवाओं को संग्रहीत किया जाता है।फिर, कोड लिखने के लिए कॉल करने के लिए कोड RAX का उपयोग किया जाता है, फिर बाहर निकलने के लिए RDI का उपयोग किया जाता है।SYSCALL फ़ंक्शन का उपयोग ऑपरेटिंग सिस्टम को लागू करने के लिए दो बार किया जाता है और साथ ही सिस्टम को यह इंगित करने के लिए किया जाता है कि कोड कब समाप्त हो गया है और यह बाहर निकलने का समय है।

असेंबली लैंग्वेज का उदाहरण क्या है?

सबसे अधिक इस्तेमाल की जाने वाली असेंबली भाषाओं में ARM, MIPS और x86 शामिल हैं।

क्या C++ एक असेंबली लैंग्वेज है?

सी ++ में असेंबली कोड शामिल नहीं है।सी ++ कंप्यूटिंग भाषा में सी ++ कोड होता है जिसे एक कंपाइलर निष्पादन योग्य मशीन कोड में अनुवादित करता है।

क्या पायथन एक विधानसभा भाषा है?

पायथन असेंबली भाषाओं की तुलना में अधिक उन्नत है।असेंबली भाषाओं को निम्न स्तर की भाषा माना जाता है, जबकि सी, जावा, या पायथन जैसी उच्च स्तरीय भाषाएं संख्याओं, प्रतीकों और संक्षेपों के बजाय 0 और 1 का उपयोग करती हैं।

आज असेंबली भाषा का उपयोग कैसे किया जाता है?

हालाँकि अधिक उन्नत भाषाओं की तुलना में निम्न स्तर की भाषा मानी जाती है, फिर भी असेंबली भाषाओं का उपयोग किया जाता है।असेंबली भाषा का उपयोग सीधे हार्डवेयर में हेरफेर करने, विशेष प्रोसेसर निर्देशों तक पहुँचने या महत्वपूर्ण प्रदर्शन समस्याओं का मूल्यांकन करने के लिए किया जाता है।इन भाषाओं का उपयोग समय-संवेदी गतिविधियों जैसे उच्च आवृत्ति व्यापार के लिए उच्च स्तरीय भाषाओं पर अपने गति लाभ का लाभ उठाने के लिए भी किया जाता है।

तल - रेखा

असेंबली भाषा निम्न-स्तरीय कोड है जो कोडिंग भाषा का उपयोग करते हुए निर्देश इनपुट के बीच एक मजबूत संबंध पर निर्भर करता है और मशीन कोड निर्देशों की व्याख्या कैसे करती है।कोड को एक असेंबलर का उपयोग करके निष्पादन योग्य क्रियाओं में परिवर्तित किया जाता है जो इनपुट को मशीन के लिए पहचानने योग्य निर्देशों में परिवर्तित करता है।हालांकि कंप्यूटिंग के शुरुआती दिनों में प्रचलित, कई बड़े सिस्टम उच्च-स्तरीय भाषाओं का उपयोग करते हैं।