ओपकोड

From Vigyanwiki

कम्प्यूटिंग में, एक ओपकोड[1][2](ऑपरेशन कोड से संक्षिप्त,[1] जिसे निर्देश मशीन कोड के रूप में भी जाना जाता है,[3]निर्देश कोड,[4] निर्देश शब्दांश,[5][6][7][8] निर्देश पार्सल या ऑप्टस्ट्रिंग)[9][2] मशीन कोड निर्देश (कंप्यूटर विज्ञान) मशीन भाषा निर्देश का वह हिस्सा है जो प्रदर्शन किए जाने वाले ऑपरेशन को निर्दिष्ट करता है। ओपकोड के अतिरिक्त, अधिकांश निर्देश ओपेरंड के रूप में संसाधित किए जाने वाले डेटा को भी निर्दिष्ट करते हैं। विभिन्न सीपीयू के निर्देश सेट आर्किटेक्चर में उपयोग किए जाने वाले ऑपकोड के अतिरिक्त, जो कि हार्डवेयर उपकरण हैं, उनका उपयोग अमूर्त कंप्यूटिंग मशीनों में उनके बाइट कोड विनिर्देशों के हिस्से के रूप में भी किया जा सकता है। विनिर्देशों के हिस्से के रूप में भी किया जा सकता है।

अवलोकन

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


ऑपरेशंस

आर्किटेक्चर के आधार पर, ऑपरेंड प्रोसेसर रजिस्टर वैल्यू, कॉल स्टैक में वैल्यू, अन्य याद वैल्यू, I/O पोर्ट (जो मेमोरी-मैप्ड I/O भी हो सकते हैं) आदि हो सकते हैं, निर्दिष्ट और अधिक या कम जटिल का उपयोग करके एक्सेस किया जा सकता है। संबोधित मोड।[citation needed] संचालन के प्रकार में अंकगणित, डेटा प्रतिलिपि, तार्किक संचालन, और प्रोग्राम नियंत्रण, साथ ही विशेष निर्देश (जैसे सीपीयूआईडी और अन्य) शामिल हैं।[10]

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


सॉफ्टवेयर निर्देश सेट

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

ऑपकोड तथाकथित बाइट कोड औरहार्डवेय र उपकरण के बजाय सॉफ़्टवेयर दुभाषिया के लिए अन्य अभ्यावेदन में भी पाए जा सकते हैं।

यह भी देखें

संदर्भ

  1. 1.0 1.1 Barron, David William (1978) [1971, 1969]. "2.1. Symbolic instructions". Written at University of Southampton, Southampton, UK. In Floretin, J. John (ed.). Assemblers and Loaders. Computer Monographs (3 ed.). New York, USA: Elsevier North-Holland Inc. p. 7. ISBN 0-444-19462-2. LCCN 78-19961. (xii+100 pages)
  2. 2.0 2.1 Chiba, Shigeru (2007) [1999]. "Javassist, a Java-bytecode translator toolkit". Archived from the original on 2020-03-02. Retrieved 2016-05-27.
  3. "Appendix B - Instruction Machine Codes" (PDF). MCS-4 Assembly Language Programming Manual - The INTELLEC 4 Microcomputer System Programming Manual (Preliminary ed.). Santa Clara, California, USA: Intel Corporation. December 1973. pp. B-1–B-8. MCS-030-1273-1. Archived (PDF) from the original on 2020-03-01. Retrieved 2020-03-02.
  4. Raphael, Howard A., ed. (November 1974). "The Functions Of A Computer: Instruction Register And Decoder" (PDF). MCS-40 User's Manual For Logic Designers. Santa Clara, California, USA: Intel Corporation. p. viii. Archived (PDF) from the original on 2020-03-03. Retrieved 2020-03-03. […] Each operation that the processor can perform is identified by a unique binary number known as an instruction code. […]
  5. Jones, Douglas W. (June 1988). "A Minimal CISC". ACM SIGARCH Computer Architecture News. New York, USA: Association for Computing Machinery (ACM). 16 (3): 56–63. doi:10.1145/48675.48684. S2CID 17280173.
  6. Domagała, Łukasz (2012). "7.1.4. Benchmark suite". Application of CLP to instruction modulo scheduling for VLIW processors. Gliwice, Poland: Jacek Skalmierski Computer Studio. pp. 80–83 [83]. ISBN 978-83-62652-42-6. Archived from the original on 2020-03-02. Retrieved 2016-05-28.
  7. Smotherman, Mark (2016) [2013]. "Multiple Instruction Issue". School of Computing, Clemson University. Archived from the original on 2016-05-28. Retrieved 2016-05-28.
  8. Jones, Douglas W. (2016) [2012]. "A Minimal CISC". Computer Architecture On-Line Collection. Iowa City, USA: The University of Iowa, Department of Computer Science. Archived from the original on 2020-03-02. Retrieved 2016-05-28.
  9. Schulman, Andrew (2005-07-01). "Finding Binary Clones with Opstrings & Function Digests". Dr. Dobb's Journal. Part I. Vol. 30, no. 7. CMP Media LLC. pp. 69–73. ISSN 1044-789X. #374. Archived from the original on 2020-03-02. Retrieved 2020-03-02; Schulman, Andrew (2005-08-01). "Finding Binary Clones with Opstrings & Function Digests". Dr. Dobb's Journal. Part II. Vol. 30, no. 8. CMP Media LLC. pp. 56–61. ISSN 1044-789X. #375. Archived from the original on 2020-03-02. Retrieved 2016-05-28; Schulman, Andrew (2005-09-01). "Finding Binary Clones with Opstrings & Function Digests". CMP Media LLC. Part III. Vol. 30, no. 9. United Business Media. pp. 64–70. ISSN 1044-789X. #376. Archived from the original on 2020-03-02. Retrieved 2016-05-28.
  10. 10.0 10.1 10.2 10.3 10.4 10.5 Hennessy, John L.; Patterson, David A.; Asanović, Krste; Bakos, Jason D.; Colwell, Robert P.; Bhattacharjee, Abhishek; Conte, Thomas M.; Duato, José; Franklin, Diana; Goldberg, David; Jouppi, Norman P.; Li, Sheng; Muralimanohar, Naveen; Peterson, Gregory D.; Pinkston, Timothy M.; Ranganathan, Parthasarathy; Wood, David A.; Young, Cliff; Zaky, Amr (2017-11-23). Computer architecture: A quantitative approach (6 ed.). Cambridge, Massachusetts, USA: Morgan Kaufmann Publishers. ISBN 978-0-12811905-1. OCLC 983459758.
  11. Mansfield, Richard (1983). "Introduction: Why Machine Language?". Machine Language For Beginners. Compute! Books (1 ed.). Greensboro, North Carolina, USA: COMPUTE! Publications, Inc., American Broadcasting Companies, Inc.; Small System Services, Inc. ISBN 0-942386-11-6. Archived from the original on 2008-02-13. Retrieved 2016-05-28.
  12. "Programming Language Popularity". langpop.com. 2013-10-25. Archived from the original on 2015-04-11. Retrieved 2015-10-10.
  13. Swanson, William (2001). "Introduction to Assembly Language". Swanson Technologies. Archived from the original on 2020-03-02. Retrieved 2015-10-10.
  14. "bytecode Definition". PC Magazine. PC Magazine Encyclopedia. Archived from the original on 2012-10-06. Retrieved 2015-10-10.


अग्रिम पठन