ओपकोड

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

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

संचालन
आर्किटेक्चर के आधार पर, ऑपरेंड रजिस्टर वैल्यू, स्टैक में वैल्यू, अन्य मेमोरी वैल्यू, इनपुट/आउटपुट पोर्ट (जो मेमोरी मैप भी हो सकते हैं) आदि हो सकते हैं, निर्दिष्ट और अधिक या कम जटिल का उपयोग करके एक्सेस किया जा सकता है। संचालन के प्रकारों में अंकगणित, डेटा प्रतिलिपिकरण, तार्किक संचालन, और प्रोग्राम नियंत्रण, साथ ही साथ विशेष निर्देश (जैसे सीपीयूआईडी और अन्य) सम्मिलित हैं।

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

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

यह भी देखें

 * गैजेट (मशीन निर्देश अनुक्रम)
 * अवैध ओपकोड
 * शब्दांश (कंप्यूटिंग)