एनओपी (कोड): Difference between revisions
No edit summary |
No edit summary |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 7: | Line 7: | ||
==मशीन भाषा निर्देश== | ==मशीन भाषा निर्देश== | ||
कुछ कंप्यूटर अनुदेश सेटों में एक निर्देश सम्मिलित होता है जिसका स्पष्ट उद्देश्य प्रोग्रामर-सुलभ [[प्रोसेसर रजिस्टर]], प्रक्रिया स्थिति या मुख्य मेमोरी में से किसी की स्थिति को बदलना | कुछ कंप्यूटर अनुदेश सेटों में एक निर्देश सम्मिलित होता है जिसका स्पष्ट उद्देश्य प्रोग्रामर-सुलभ [[प्रोसेसर रजिस्टर]], प्रक्रिया स्थिति या मुख्य मेमोरी में से किसी की स्थिति को बदलना एनओपी है। इसे निष्पादित करने के लिए अक्सर [[घड़ी चक्र]]ों की एक अच्छी तरह से परिभाषित संख्या की आवश्यकता होती है। अन्य निर्देश सेटों में, कोई स्पष्ट एनओपी निर्देश एनओपी है, लेकिन असेंबली भाषा मेमोनिक एनओपी एक निर्देश का प्रतिनिधित्व करता है जो एनओपी के रूप में कार्य करता है; उदाहरण के लिए, [[SPARC|एसपीएआरसी]] पर, <code>सेठी 0, %जी0</code>. | ||
किसी एनओपी को मेमोरी तक | किसी एनओपी को मेमोरी तक एनओपी पहुंचना चाहिए, क्योंकि इससे मेमोरी में खराबी या पेज में दुर्दशा हो सकती है। | ||
एनओपी का उपयोग प्रायः समय निर्धारण उद्देश्यों के लिए किया जाता है, [[डेटा संरचना संरेखण]] को मजबूर करने के लिए, खतरे (कंप्यूटर वास्तुकला) को रोकने के लिए, एक [[शाखा विलंब स्लॉट]] पर कब्जा करने के लिए, एक प्रचलित निर्देश जैसे जंप को शून्य करने के लिए, एक निष्पादन निर्देश के लक्ष्य के रूप में , या प्रोग्राम विकास में बाद में सक्रिय निर्देशों द्वारा प्रतिस्थापित किए जाने वाले प्लेस-होल्डर के रूप में (या जब पुनर्संगठित करना समस्याग्रस्त या समय लेने वाला होगा तो हटाए गए निर्देशों को प्रतिस्थापित करना)। कुछ घटनाओं में, एनओपी के अप्रौढ दुष्प्रभाव हो सकते हैं; उदाहरण के लिए, [[मोटोरोला 68000]] श्रृंखला के प्रोसेसर पर, एनओपी ऑपकोड [[पाइपलाइन (कंप्यूटिंग)]] के तादात्म्य का कारण बनता है।<ref name=m68ref>{{cite web|url=http://www.freescale.com/files/archives/doc/ref_manual/M68000PRM.pdf|title=Motorola 68000 Programmer's Reference Manual}}</ref> | एनओपी का उपयोग प्रायः समय निर्धारण उद्देश्यों के लिए किया जाता है, [[डेटा संरचना संरेखण]] को मजबूर करने के लिए, खतरे (कंप्यूटर वास्तुकला) को रोकने के लिए, एक [[शाखा विलंब स्लॉट]] पर कब्जा करने के लिए, एक प्रचलित निर्देश जैसे जंप को शून्य करने के लिए, एक निष्पादन निर्देश के लक्ष्य के रूप में , या प्रोग्राम विकास में बाद में सक्रिय निर्देशों द्वारा प्रतिस्थापित किए जाने वाले प्लेस-होल्डर के रूप में (या जब पुनर्संगठित करना समस्याग्रस्त या समय लेने वाला होगा तो हटाए गए निर्देशों को प्रतिस्थापित करना)। कुछ घटनाओं में, एनओपी के अप्रौढ दुष्प्रभाव हो सकते हैं; उदाहरण के लिए, [[मोटोरोला 68000]] श्रृंखला के प्रोसेसर पर, एनओपी ऑपकोड [[पाइपलाइन (कंप्यूटिंग)]] के तादात्म्य का कारण बनता है।<ref name=m68ref>{{cite web|url=http://www.freescale.com/files/archives/doc/ref_manual/M68000PRM.pdf|title=Motorola 68000 Programmer's Reference Manual}}</ref> | ||
Line 23: | Line 23: | ||
!टिप्पणियाँ | !टिप्पणियाँ | ||
|- | |- | ||
| [[Intel|इंटेलl]] [[x86]] [[central processing unit|सीपीयू]] परिवार | | [[Intel|इंटेलl]] [[x86|एक्स86]] [[central processing unit|सीपीयू]] परिवार | ||
| <code> | | <code>एनओपी</code> | ||
| 1; 1–9 | | 1; 1–9 के लिए आई686 और एक्स86-64 | ||
| [[hexadecimal| | | [[hexadecimal|0एक्स]]90<ref>{{cite web |url=http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf|title=Intel 64 and IA-32 Architectures Software Developer's Manual: Instruction Set Reference A-Z|access-date=2012-03-01}}</ref> | ||
| | |0एक्स90 लंबे मोड को छोड़कर सभी मोड में एक्ससीएचजी ईएएक्स, ईएएक्स को डिकोड करता है, जहां ऑपकोड 0एक्स90 का अभी भी कोई प्रभाव एनओपी है। इंटेल के मैनुअल में लंबी एन्कोडिंग का वर्णन किया गया है। | ||
|- | |- | ||
| [[Intel|इंटेलl]] [[8051]] / [[MCS-51|एमसीएस-51]] परिवार | | [[Intel|इंटेलl]] [[8051]] / [[MCS-51|एमसीएस-51]] परिवार | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्स00 | ||
| | | | ||
|- | |- | ||
| [[ARM architecture|एआरएम ए32]] | | [[ARM architecture|एआरएम ए32]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स00000000 | ||
| | |यह अंडेक आर0, आर0, आर0 के लिए है। असेंबली निर्देश एनओपी संभवतः मोव आर0, आर0 तक विस्तारित होगा जो 0एक्सE1ए00000 (लिटिल-एंडियन आर्किटेक्चर) एन्कोड किया गया है। | ||
|- | |- | ||
| [[ARM architecture#Thumb-2|एआरएम टी32]] (16 बिट) | | [[ARM architecture#Thumb-2|एआरएम टी32]] (16 बिट) | ||
| <code> | | <code>एनओपी</code> | ||
| 2 | | 2 | ||
| | | 0एक्सb000 | ||
| | |एडीडी एसपी के लिए ऑपकोड, #0 - स्टैक पॉइंटर में शून्य जोड़ें (कोई ऑपरेशन एनओपी)। असेंबली निर्देश एनओपी संभवतः mov आर8, आर8 तक विस्तारित होगा जो 0एक्स46सी0 एन्कोडेड है। | ||
|- | |- | ||
| [[ARM architecture#Thumb-2|एआरएम टी32]] (32 बिट) | | [[ARM architecture#Thumb-2|एआरएम टी32]] (32 बिट) | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्सF3एएफ 8000 | ||
| | | | ||
|- | |- | ||
| [[ARM architecture#ARMv8_and_64-bit|एआरएम ए64]] (64 बिट) | | [[ARM architecture#ARMv8_and_64-bit|एआरएम ए64]] (64 बिट) | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्सD503201एफ | ||
| | | | ||
|- | |- | ||
| [[AVR microcontrollers|एवीआर]] | | [[AVR microcontrollers|एवीआर]] | ||
| <code> | | <code>एनओपी</code> | ||
| 2 | | 2 | ||
| | | 0एक्स0000 | ||
| | |एक घड़ी चक्र | ||
|- | |- | ||
| rowspan="2" | [[IBM System/360|आईबीएम सिस्टम/360]], [[IBM System/370|आईबीएम सिस्टम/370]], [[IBM System/390|आईबीएम सिस्टम/390]], [[z/Architecture|जेड/आर्किटेक्चर]], [[UNIVAC Series 90|यूनिवैक सीरीज 90]] | | rowspan="2" | [[IBM System/360|आईबीएम सिस्टम/360]], [[IBM System/370|आईबीएम सिस्टम/370]], [[IBM System/390|आईबीएम सिस्टम/390]], [[z/Architecture|जेड/आर्किटेक्चर]], [[UNIVAC Series 90|यूनिवैक सीरीज 90]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स47000000 or 0एक्स470एनएनएनएनएन or 0एक्स47एन0एनएनएनएन where "एन" is कोई भी 4-बिट वैल्यू. | ||
| rowspan="2" | | | rowspan="2" |एनओपी ("नो-ऑप") और एनओपीआर ("नो-ऑप रजिस्टर") क्रमशः "ब्रांच ऑन कंडीशन" या "ब्रांच ऑन कंडीशन रजिस्टर" निर्देशों का एक उपसमूह हैं; दोनों संस्करणों में एनO-OP उत्पन्न करने के लिए दो विकल्प हैं। | ||
एनओपी और एनओपीआईआर दोनों निर्देशों के मामले में, दूसरे बाइट में पहला 0 "मास्क" मान है, परीक्षण करने की स्थिति जैसे कि बराबर, बराबर एनओपी, उच्च, निम्न, आदि। यदि मास्क 0 है, तो कोई शाखा एनओपी है घटित होना। | |||
एनओपीआईआर निर्देश के मामले में, दूसरे बाइट में दूसरा मान शाखा के लिए रजिस्टर है। यदि रजिस्टर 0 चुना जाता है, तो मास्क मूल्य की परवाह किए बिना कोई शाखा एनओपी होती है। इस प्रकार, यदि दूसरे बाइट में दोनों में से कोई भी मान 0 है, तो शाखा एनओपी होगी। | |||
एनओपी निर्देश के मामले में, दूसरे बाइट में दूसरा मान संयुक्त आधार रजिस्टर, विस्थापन रजिस्टर और ऑफसेट पते का "आधार" रजिस्टर है। यदि आधार रजिस्टर भी 0 है, तो विस्थापन रजिस्टर या विस्थापन पते के मूल्य की परवाह किए बिना शाखा एनओपी ली जाती है। | |||
|- | |- | ||
| <code> | | <code>एनओपीआर</code> | ||
| 2 | | 2 | ||
| | | 0एक्स0700 या 0एक्स0700एन या 0एक्स 0700एन0 जहां "एन" कोई 4-बिट मान है। | ||
|- | |- | ||
| [[SuperH|सुपर एच]] | | [[SuperH|सुपर एच]] | ||
| <code> | | <code>एनओपी</code> | ||
| 2 | | 2 | ||
| | | 0एक्स0009 | ||
| | | | ||
|- | |- | ||
| [[MIPS architecture|एमआईपीएस]] | | [[MIPS architecture|एमआईपीएस]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स00000000 | ||
| | |एसएलएल आर0,आर0,0 के लिए खड़ा है, जिसका अर्थ है: तार्किक रूप से रजिस्टर 0 शून्य बिट्स को बाईं ओर स्थानांतरित करें और परिणाम को रजिस्टर 0 में संग्रहीत करें। रजिस्टर 0 पर लिखने पर ध्यान एनओपी दिया जाता है; इसमें हमेशा 0 होता है. | ||
|- | |- | ||
| [[MIPS-X|एमआईपीएस-एक्स]] | | [[MIPS-X|एमआईपीएस-एक्स]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स60000019 | ||
| ( | |(आर0,आर0,आर0 जोड़ने के लिए विस्तारित ऑपकोड) | ||
|- | |- | ||
| [[MIX|एमआईएक्स]] | | [[MIX|एमआईएक्स]] | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 शब्द | ||
| ± * * * * 0 | | ± * * * * 0 | ||
| | |* बाइट्स मनमाने हैं, और 0 से अधिकतम बाइट तक कुछ भी हो सकते हैं (63-99 की सीमा में होना आवश्यक है)। दिव्यएक्स साइन-परिमाण प्रतिनिधित्व का उपयोग करता है। | ||
|- | |- | ||
| [[MMIX|एम]][[MMIX|एमआईएक्स]] | | [[MMIX|एम]][[MMIX|एमआईएक्स]] | ||
| <code> | | <code>एसडब्ल्यूवाईएम</code> | ||
| 4 | | 4 | ||
| | | 0एक्सएफडी****** | ||
| | |एसडब्ल्यूवाईएम का मतलब है "अपनी मशीनरी के प्रति सहानुभूति रखें"। * अंक मनमाने ढंग से चुने जा सकते हैं। | ||
|- | |- | ||
| [[Motorola 68000 family|मोटोरोला 68000 परिवार]] | | [[Motorola 68000 family|मोटोरोला 68000 परिवार]] | ||
| <code> | | <code>एनओपी</code> | ||
| 2 | | 2 | ||
| | | 0एक्स4इ71 | ||
| | | यह को सिंक्रनाइज़ करता है [[Pipeline (computing)|पाइपलाइन]] और निर्देश ओवरलैप को रोकता है।.<ref name="m68ref" /> | ||
|- | |- | ||
| [[Motorola 6809|मोटोरोला 6809]] | | [[Motorola 6809|मोटोरोला 6809]] | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्स12 | ||
| | | | ||
|- | |- | ||
| [[MOS Technology 65xx|एमओएस टेक्नोलॉजी | | [[MOS Technology 65xx|एमओएस टेक्नोलॉजी 65एक्सएक्स]] (उदा. [[6502]]) | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्सEA | ||
| <code>''' | | <code>'''एनओपी'''</code> दो घड़ी चक्रों का उपभोग करता है। [[Illegal opcode|अपरिभाषित ऑपकोड]] में [[NMOS logic|एनएमओएस]] संस्करणों को 65एक्सएक्स परिवार were सीoएनverted to be एनओपी में अलग-अलग निर्देश लंबाई और चक्र समय के एनओपी में परिवर्तित किया गया था। [[WDC 65C02|65सी02]]. | ||
|- | |- | ||
| <code>एनओपी</code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स60000000 | ||
| ( | |(ओआरआई आर0,आर0,0 के लिए विस्तारित ऑपकोड) | ||
|- | |- | ||
| [[PIC microcontroller|पीआईसी माइक्रोकंट्रोलर]] | | [[PIC microcontroller|पीआईसी माइक्रोकंट्रोलर]] | ||
| <code> | | <code>एनओपी</code> | ||
| 12 | | 12 बिट्स | ||
| 0b000000000000 | | 0b000000000000 | ||
| | |एमओवीडब्ल्यू 0,डब्ल्यू | ||
|- | |- | ||
| [[RISC-V|आरआईएससी-वी]] | | [[RISC-V|आरआईएससी-वी]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स00000013 | ||
| | |एडीडीआई एक्स0, एक्स0, 0 | ||
|- | |- | ||
| [[SPARC|एसपीएआरसी]] | | [[SPARC|एसपीएआरसी]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स01000000 | ||
| | |सेठी 0, %जी0 के लिए खड़ा है जो हार्डवेयर्ड-टू-जीरो %जी0 रजिस्टर को शून्य करता है | ||
|- | |- | ||
| [[Z80|जेड80]] | | [[Z80|जेड80]] | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्स00 | ||
| | |बिना किसी प्रभाव के कुछ अन्य निर्देश हैं (और वही समय): एलडी ए, ए, एलडी बी, बी आदि। | ||
|- | |- | ||
| [[PDP-10|पीडीपी-10]] | | [[PDP-10|पीडीपी-10]] | ||
| | | जेएफसीएल 0, (पारंपरिक) | ||
| 1 | जम्प, सेटा, सेताई, सीएआई, टीआरएन, टीएलएन | ||
| 25500******* ( | | 1 शब्द | ||
| | | 25500******* (अष्टभुजाकार) | ||
|कूदो कभी मत | |||
कभी कूदो मत, कुछ भी सेट मत करो, कभी मत छोड़ो | |||
|- | |- | ||
| [[PDP-11|पीडीपी-11]] | | [[PDP-11|पीडीपी-11]] | ||
| <code> | | <code>एनओपी</code> | ||
| 16 | | 16 बिट्स | ||
| 000240 ( | | 000240 (अष्टभुजाकार) | ||
| | |कोई भी शर्त कोड साफ़ न करें | ||
|- | |- | ||
| [[VAX]] | | [[VAX|वीएएक्स]] | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्स01 | ||
| | |विलंब प्रोसेसर प्रकार पर निर्भर है | ||
|} | |} | ||
हार्डवेयर डिज़ाइन के दृष्टिकोण से, बस के अनमैप्ड क्षेत्रों को अक्सर शून्य लौटाने के लिए डिज़ाइन किया जाता है; चूंकि [[एनओपी स्लाइड]] व्यवहार अक्सर वांछनीय होता है, यह इसे ऑल-जीरोज़ ऑपकोड के साथ कोडिंग करने में पूर्वाग्रह देता है। | हार्डवेयर डिज़ाइन के दृष्टिकोण से, बस के अनमैप्ड क्षेत्रों को अक्सर शून्य लौटाने के लिए डिज़ाइन किया जाता है; चूंकि [[एनओपी स्लाइड]] व्यवहार अक्सर वांछनीय होता है, यह इसे ऑल-जीरोज़ ऑपकोड के साथ कोडिंग करने में पूर्वाग्रह देता है। | ||
== कोड == | == कोड == | ||
एक | एक कार्य या प्रोग्रामिंग भाषा कथनों का अनुक्रम एक एनओपी या अशक्त कथन है यदि इसका कोई प्रभाव एनओपी है। कुछ संदर्भों में कुछ भाषाओं की [[प्रोग्रामिंग भाषा सिंटैक्स|प्रोग्रामिंग भाषा वाक्य - विन्यास]] द्वारा शून्य कथनों की आवश्यकता हो सकती है। | ||
=== अदा === | === अदा === | ||
[[एडा (प्रोग्रामिंग भाषा)]] में, <code> | [[एडा (प्रोग्रामिंग भाषा)]] में, <code>एनयूएलएल</code> कथन एनओपी के रूप में कार्य करता है।<ref>[http://www.adaic.org/resources/add_content/standards/05aarm/html/AA-5-1.html#S0134 Ada Reference Manual — null statements]. "The execution of a null_statement has no effect."</ref> जैसा कि वाक्यविन्यास निषिद्ध करता है कि नियंत्रण कथन या कार्य खाली हों, <code>एनयूएलएल</code> कथन का उपयोग यह निर्दिष्ट करने के लिए किया जाना चाहिए कि किसी कार्रवाई की आवश्यकता एनओपी है। (इस प्रकार, यदि प्रोग्रामर कथनों का अनुक्रम लिखना भूल जाता है, तो प्रोग्राम संकलित करने में विफल हो जाएगा।) | ||
=== सी और डेरिवेटिव === | === सी और डेरिवेटिव === | ||
Line 202: | Line 191: | ||
एक खाली ब्लॉक (यौगिक विवरण) भी एक एनओपी है, और अधिक सुपाठ्य हो सकता है: | एक खाली ब्लॉक (यौगिक विवरण) भी एक एनओपी है, और अधिक सुपाठ्य हो सकता है: | ||
{} | {} | ||
कुछ घटना में, जैसे किसी | कुछ घटना में, जैसे किसी कार्य का मुख्य भाग, एक ब्लॉक का उपयोग किया जाना चाहिए, लेकिन यह खाली हो सकता है। सी में, कथन खाली एनओपी हो सकते - सरल कथन ए के साथ समाप्त होने चाहिए; (अर्धविराम) जबकि यौगिक कथन {} (ब्रेसिज़) में संलग्न होते हैं, जिन्हें स्वयं निम्एनयूएलएलिखित अर्धविराम की आवश्यकता एनओपी होती है। इस प्रकार उन संदर्भों में जहां एक कथन व्याकरणिक रूप से आवश्यक है, ऐसे कुछ शून्य कथन का उपयोग किया जा सकता है। | ||
शून्य कथन अपने आप में बेकार है, लेकिन व्यापक संदर्भ में इसका वाक्यात्मक उपयोग हो सकता है, उदाहरण के लिए, लूप के संदर्भ में: | शून्य कथन अपने आप में बेकार है, लेकिन व्यापक संदर्भ में इसका वाक्यात्मक उपयोग हो सकता है, उदाहरण के लिए, लूप के संदर्भ में: | ||
Line 219: | Line 208: | ||
while (getchar() != '\n'); | while (getchar() != '\n'); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
(ध्यान दें कि अंतिम फॉर्म भ्रमित करने वाला हो सकता है, और इस तरह कुछ | (ध्यान दें कि अंतिम फॉर्म भ्रमित करने वाला हो सकता है, और इस तरह कुछ संकलकों या संकलक विकल्पों के साथ एक चेतावनी उत्पन्न होती है, क्योंकि पंक्ति के अंत में कोष्ठक के बाद रखे जाने पर अर्धविराम प्रायः कार्य कॉल निर्देश के अंत को इंगित करता है)। | ||
उपरोक्त कोड | उपरोक्त कोड कार्य गेटसीहर() को तब तक कॉल करना जारी रखता है जब तक कि यह एक \एन (न्यूलाइन) वर्ण एनओपी लौटाता है, अनिवार्य रूप से मानक इनपुट के वर्तमान रीडिंग स्थान को अगली पंक्ति की प्रारम्भ में तेजी से अग्रेषित करता है। | ||
=== [[फोरट्रान]] === | === [[फोरट्रान]] === | ||
फोरट्रान में, <code> | फोरट्रान में, <code>चालू रखना</code> स्टेटमेंट का उपयोग कुछ संदर्भों में किया जाता है जैसे कि डीओ लूप में अंतिम स्टेटमेंट, यदपि इसका उपयोग कहीं भी किया जा सकता है, और इसमें कोई कार्यक्षमता एनओपी होती है। | ||
=== [[जावास्क्रिप्ट]] === | === [[जावास्क्रिप्ट]] === | ||
जावास्क्रिप्ट भाषा में कोई अंतर्निहित एनओपी कथन | जावास्क्रिप्ट भाषा में कोई अंतर्निहित एनओपी कथन एनओपी है। कई कार्यान्वयन संभव हैं: | ||
* उपयोग <code>;</code> खाली बयान<ref>MDN JavaScript reference – [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/Empty empty statement]. "The empty statement is a semicolon (<code>;</code>) indicating that no statement will be executed, even if JavaScript syntax requires one."</ref> या <code>{}</code> एनओपी (कोड)#सी_एंड_डेरिवेटिव्स उदाहरणों की तरह ही खाली ब्लॉक स्टेटमेंट; | * उपयोग <code>;</code> खाली बयान<ref>MDN JavaScript reference – [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/Empty empty statement]. "The empty statement is a semicolon (<code>;</code>) indicating that no statement will be executed, even if JavaScript syntax requires one."</ref> या <code>{}</code> एनओपी (कोड)#सी_एंड_डेरिवेटिव्स उदाहरणों की तरह ही खाली ब्लॉक स्टेटमेंट; | ||
* उपयोग <code> | * उपयोग <code>अपरिभाषित</code> या <code>एनयूएलएल</code> अभिव्यक्ति को एक पूर्ण कथन के रूप में (एक अभिव्यक्ति कथन) जब पिछली विधियों को वाक्य - विन्यास द्वारा अनुमति एनओपी दी जाती है। | ||
विकल्प, उन स्थितियों में जहां किसी | विकल्प, उन स्थितियों में जहां किसी कार्य की आवश्यकता होती है, ये हैं: | ||
* उपयोग <code> | * उपयोग <code>फ़ंक्शन.प्रोटोटाइप()</code> अंतर्निहित कार्य, जो किसी भी तर्क को स्वीकार करता है और रिटर्न देता है <code>अपरिभाषित</code>;<ref>ECMAScript Language Specification – Edition 5.1 – [https://www.ecma-international.org/ecma-262/5.1/#sec-15.3.4 Properties of the Function Prototype Object]</ref> | ||
* तृतीय-पक्ष लाइब्रेरी में उपलब्ध एनओपी | * तृतीय-पक्ष लाइब्रेरी में उपलब्ध एनओपी कार्य का उपयोग करें—नीचे देखें; | ||
* एक कस्टम एनओपी | * एक कस्टम एनओपी कार्य को परिभाषित करें, जैसा कि निम्एनयूएलएलिखित उदाहरण में है ([[ES6|ईएस6]] एरो कार्य वाक्य - विन्यास का उपयोग करके): | ||
<syntaxhighlight lang="javascript">const noop = () => {};</syntaxhighlight> | <syntaxhighlight lang="javascript">const noop = () => {};</syntaxhighlight> | ||
==== एंगुलरजेएस ==== | ==== एंगुलरजेएस ==== | ||
[[AngularJS]] फ्रेमवर्क [https://docs.angularjs.org/api/ng/function/angular.noop | [[AngularJS|कोणीयजेएस]] फ्रेमवर्क [https://docs.angularjs.org/api/ng/function/angular.noop कोणीय.एनओपी] कार्य प्रदान करता है जो कोई ऑपरेशन एनओपी करता है। | ||
==== [[jQuery|जेक्वेरी]] ==== | |||
जेक्वेरी लाइब्रेरी एक कार्य प्रदान करती है <code>जेक्वेरी.एनओपी()</code>, जो कुछ एनओपी करता.<ref>[http://api.jquery.com/jquery.noop/ jQuery.noop()] from jQuery API documentation</ref> | |||
==== लोदाश ==== | ==== लोदाश ==== | ||
लॉडैश लाइब्रेरी एक | लॉडैश लाइब्रेरी एक कार्य प्रदान करती है <code>_.एनओपी()</code>, जो अपरिभाषित लौटाता है और कुछ एनओपी करता।<ref>{{Cite web|url=https://lodash.com/docs/#noop|title=लोदाश दस्तावेज़ीकरण|website=lodash.com|language=en|access-date=2017-12-15}}</ref> | ||
=== पास्कल === | === पास्कल === | ||
सी के साथ, ; स्वयं द्वारा प्रयुक्त को [[पास्कल (प्रोग्रामिंग भाषा)]] में एक अशक्त कथन के रूप में उपयोग किया जा सकता है। वास्तव में, भाषा की विशिष्टता के कारण, | सी के साथ, ; स्वयं द्वारा प्रयुक्त को [[पास्कल (प्रोग्रामिंग भाषा)]] में एक अशक्त कथन के रूप में उपयोग किया जा सकता है। वास्तव में, भाषा की विशिष्टता के कारण, आरंभ/समाप्ति ब्लॉक में, समाप्ति कथन से पहले अर्धविराम वैकल्पिक होता है, इस प्रकार वहां प्रयुक्त अर्धविराम अनावश्यक होता है। | ||
इसके अलावा, एक ब्लॉक जिसमें सम्मिलित है <code> | इसके अलावा, एक ब्लॉक जिसमें सम्मिलित है <code> आरंभ समाप्ति;</code> कोई कार्रवाई न होने का संकेत देने के लिए प्लेसहोल्डर के रूप में उपयोग किया जा सकता है, भले ही इसे किसी अन्य आरंभ/समाप्ति ब्लॉक के अंदर रखा गया हो। | ||
===पायथन === | ===पायथन === | ||
[[पायथन (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग भाषा में एक पायथन (प्रोग्रामिंग भाषा)#स्टेटमेंट्स और नियंत्रण प्रवाह| है<code> | [[पायथन (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग भाषा में एक पायथन (प्रोग्रामिंग भाषा)#स्टेटमेंट्स और नियंत्रण प्रवाह| है<code>उत्तीर्ण</code> ऐसा कथन जिसे निष्पादित करने पर कोई प्रभाव एनओपी पड़ता है और इस प्रकार यह एनओपी के रूप में कार्य करता है। इसका उपयोग मुख्य रूप से पायथन के [[ऑफ-साइड नियम]] | इंडेंटेशन-सेंसिटिव वाक्य - विन्यास के कारण सही वाक्य - विन्यास सुनिश्चित करने के लिए किया जाता है; उदाहरण के लिए किसी [[ कक्षा (कंप्यूटर प्रोग्रामिंग) ]] की परिभाषा के लिए वाक्य - विन्यास के लिए श्रेणीतर्क के साथ एक इंडेंटेड ब्लॉक की आवश्यकता होती है, जिसे इस प्रकार व्यक्त किया जाना चाहिए <code>उत्तीर्ण</code> जब यह खाली होना चाहिए. | ||
=== शेल स्क्रिप्टिंग (बैश, ज़ेडएसएच, आदि) === | |||
'<code>:</code>' [कोलन] कमांड एक शेल बिल्टिन है जिसका एनओपी (कुछ न करने वाला ऑपरेशन) के समान प्रभाव होता है। यह तकनीकी रूप से एनओपी एनओपी है, क्योंकि यह विशेष पैरामीटर $? को बदल देता है। (अंतिम कमांड की निकास स्थिति) से 0. इसे 'सही' में निर्मित शेल का पर्याय माना जा सकता है, और इसकी निकास स्थिति सत्य (0) है।<ref>[http://tldp.org/LDP/abs/html/special-chars.html Advanced Bash-Scripting Guide > Chapter 3. Special Characters]</ref><ref>bash manpage > SHELL BUILTIN COMMANDS</ref><ref>zsh manpage (zshbuiltins) > SHELL BUILTIN COMMANDS</ref> | |||
=== [[TeX|टेक्स]] मैक्रो भाषा (सीओएनमूलपाठ, लाटेकस, आदि) === | |||
टेक्स टाइपोग्राफ़िकल सिस्टम की मैक्रो भाषा में है <code>\विश्राम</code> आज्ञा।<ref>{{cite book |last1=Bausum |first1=David |title=TeX संदर्भ मैनुअल|date=2002 |publisher=Kluwer Academic Publishers |url=https://www.tug.org/utilities/plain/cseq.html#relax-rp |access-date=1 April 2020 |chapter=TeX Primitive Control Sequences |quote=According to The TeXbook, 'TeX does nothing' when it encounters <code>\relax</code>. Actually, <code>\relax</code> may tell TeX, 'This is the end of what you've been doing'.}}</ref> यह अपने आप में कुछ एनओपी करता है, लेकिन इसका उपयोग तत्काल पूर्ववर्ती कमांड को किसी भी बाद के टोकन को पार्स करने से रोकने के लिए किया जा सकता है।<ref>TeX wikibook – [https://en.wikibooks.org/wiki/TeX/relax relax]</ref> | |||
== एनओपी प्रोटोकॉल कमांड == | == एनओपी प्रोटोकॉल कमांड == | ||
[[टेलनेट]] जैसे कई प्रोटोकॉल (कंप्यूटिंग) में एक एनओपी कमांड सम्मिलित होता है जिसे क्लाइंट किसी अन्य कार्रवाई का अनुरोध किए बिना सर्वर से प्रतिक्रिया का अनुरोध करने के लिए जारी कर सकता है। इस तरह के कमांड का उपयोग कीपलाइव या सर्वर रिस्पॉन्सिव होने के लिए किया जा सकता है। एक | [[टेलनेट]] जैसे कई प्रोटोकॉल (कंप्यूटिंग) में एक एनओपी कमांड सम्मिलित होता है जिसे क्लाइंट किसी अन्य कार्रवाई का अनुरोध किए बिना सर्वर से प्रतिक्रिया का अनुरोध करने के लिए जारी कर सकता है। इस तरह के कमांड का उपयोग कीपलाइव या सर्वर रिस्पॉन्सिव होने के लिए किया जा सकता है। एक एनओपी कमांड निम्एनयूएलएलिखित प्रोटोकॉल का हिस्सा है (यह एक आंशिक सूची है): | ||
* टेलनेट | * टेलनेट | ||
* [[फाइल ट्रांसफर प्रोटोकॉल]] | * [[फाइल ट्रांसफर प्रोटोकॉल]] | ||
Line 276: | Line 257: | ||
* [[बिटटोरेंट (प्रोटोकॉल)]] | * [[बिटटोरेंट (प्रोटोकॉल)]] | ||
ध्यान दें कि सूचीबद्ध अन्य प्रोटोकॉल के विपरीत, | ध्यान दें कि सूचीबद्ध अन्य प्रोटोकॉल के विपरीत, आईएमएपी4 एनओपी कमांड का एक विशिष्ट उद्देश्य है - यह सर्वर को क्लाइंट को कोई भी लंबित अधिसूचना भेजने की अनुमति देता है। | ||
जबकि अधिकांश टेलनेट या [[एफ़टीपी]] सर्वर एनओओपी कमांड का जवाब ओके या +ओके के साथ देते हैं, कुछ प्रोग्रामर ने क्लाइंट के लिए विचित्र प्रतिक्रियाएं जोड़ दी हैं। उदाहरण के लिए, <code> | जबकि अधिकांश टेलनेट या [[एफ़टीपी]] सर्वर एनओओपी कमांड का जवाब ओके या +ओके के साथ देते हैं, कुछ प्रोग्रामर ने क्लाइंट के लिए विचित्र प्रतिक्रियाएं जोड़ दी हैं। उदाहरण के लिए, <code>एफटीपीडी</code> [[MINIX|एमआईएनआईएक्स]] का डेमॉन एनओपी को संदेश के साथ प्रतिक्रिया देता है:<ref name="minix_ftpd">{{cite web|url=http://www.cise.ufl.edu/~cop4600/cgi-bin/lxr/http/source.cgi/commands/ftpd/ftpd.c#L139|title=ftpd.c|access-date=2016-06-19}}</ref> | ||
एफ़टीपी सर्वर रिटर्न कोड एनओपी की सूची आपके लिए भी! | |||
== क्रैकिंग == | == क्रैकिंग == | ||
Line 285: | Line 266: | ||
== सुरक्षा शोषण == | == सुरक्षा शोषण == | ||
एनओपी ऑपकोड का उपयोग एनओपी स्लाइड बनाने के लिए किया जा सकता है, जो निर्देश सूचक का सटीक मान अनिश्चित होने पर कोड को निष्पादित करने की अनुमति देता है (उदाहरण के लिए, जब बफर ओवरफ्लो के कारण स्टैक पर | एनओपी ऑपकोड का उपयोग एनओपी स्लाइड बनाने के लिए किया जा सकता है, जो निर्देश सूचक का सटीक मान अनिश्चित होने पर कोड को निष्पादित करने की अनुमति देता है (उदाहरण के लिए, जब बफर ओवरफ्लो के कारण स्टैक पर कार्य का रिटर्न पता ओवरराइट हो जाता है)। | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[कंप्यूटर आर्किटेक्चर|कंप्यूटर वास्तुकला]] | * [[कंप्यूटर आर्किटेक्चर|कंप्यूटर वास्तुकला]] | ||
* [[एचएलटी (x86 निर्देश)]] - सीपीयू को रोक देता है | * [[एचएलटी (x86 निर्देश)|एचएलटी (एक्स86 निर्देश)]] - सीपीयू को रोक देता है | ||
* हॉल्ट एंड कैच फायर (कंप्यूटिंग) - सीपीयू को भी रोक देता है | * हॉल्ट एंड कैच फायर (कंप्यूटिंग) - सीपीयू को भी रोक देता है | ||
* पहचान | * पहचान कार्य - एनओपी के समतुल्य कार्यात्मक प्रोग्रामिंग | ||
* [[xyzzy (कंप्यूटिंग)]] - एक कमांड जो कभी-कभी | * [[xyzzy (कंप्यूटिंग)|एक्सवायेजेडजेडवाये (कंप्यूटिंग)]] - एक कमांड जो कभी-कभी एनओपी के स्थान पर उपयोग किया जाता है | ||
* [[IEFBR14]] - मेनफ्रेम टॉटोलॉजी | * [[IEFBR14|आईईएफबीआर14]] - मेनफ्रेम टॉटोलॉजी | ||
* [[भराव पाठ]] | * [[भराव पाठ]] | ||
* [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] - | * [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] - प्रायः प्रोग्रामर के लिए एनोटेशन जिन्हें संकलकों और दुभाषियों द्वारा अनदेखा किया जाता है | ||
== संदर्भ == | == संदर्भ == | ||
{{reflist}} | {{reflist}} | ||
{{DEFAULTSORT:Nop}} | {{DEFAULTSORT:Nop}} | ||
[[Category: | [[Category:All articles with unsourced statements|Nop]] | ||
[[Category:Created On 06/07/2023]] | [[Category:Articles with hatnote templates targeting a nonexistent page|Nop]] | ||
[[Category:Articles with unsourced statements from January 2020|Nop]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:Created On 06/07/2023|Nop]] | |||
[[Category:Lua-based templates|Nop]] | |||
[[Category:Machine Translated Page|Nop]] | |||
[[Category:Pages with script errors|Nop]] | |||
[[Category:Templates Vigyan Ready|Nop]] | |||
[[Category:Templates that add a tracking category|Nop]] | |||
[[Category:Templates that generate short descriptions|Nop]] | |||
[[Category:Templates using TemplateData|Nop]] | |||
[[Category:X86 निर्देश|Nop]] | |||
[[Category:परिवर्णी शब्दों की गणना करना|Nop]] | |||
[[Category:मशीन कोड|Nop]] |
Latest revision as of 10:18, 28 July 2023
Machine code |
---|
General concepts |
Instructions |
कंप्यूटर विज्ञान में, एनओपी, नो-ऑप, या एनओओपी (उच्चारण नो ऑप; बिना ऑपरेशन का संक्षिप्त रूप) एक मशीन कोड निर्देश और इसकी असेंबली भाषा निमोनिक, प्रोग्रामिंग भाषा स्टेटमेंट, या प्रोटोकॉल (कंप्यूटिंग) कमांड है जो कुछ भी नहीं करता है।
मशीन भाषा निर्देश
कुछ कंप्यूटर अनुदेश सेटों में एक निर्देश सम्मिलित होता है जिसका स्पष्ट उद्देश्य प्रोग्रामर-सुलभ प्रोसेसर रजिस्टर, प्रक्रिया स्थिति या मुख्य मेमोरी में से किसी की स्थिति को बदलना एनओपी है। इसे निष्पादित करने के लिए अक्सर घड़ी चक्रों की एक अच्छी तरह से परिभाषित संख्या की आवश्यकता होती है। अन्य निर्देश सेटों में, कोई स्पष्ट एनओपी निर्देश एनओपी है, लेकिन असेंबली भाषा मेमोनिक एनओपी एक निर्देश का प्रतिनिधित्व करता है जो एनओपी के रूप में कार्य करता है; उदाहरण के लिए, एसपीएआरसी पर, सेठी 0, %जी0
.
किसी एनओपी को मेमोरी तक एनओपी पहुंचना चाहिए, क्योंकि इससे मेमोरी में खराबी या पेज में दुर्दशा हो सकती है।
एनओपी का उपयोग प्रायः समय निर्धारण उद्देश्यों के लिए किया जाता है, डेटा संरचना संरेखण को मजबूर करने के लिए, खतरे (कंप्यूटर वास्तुकला) को रोकने के लिए, एक शाखा विलंब स्लॉट पर कब्जा करने के लिए, एक प्रचलित निर्देश जैसे जंप को शून्य करने के लिए, एक निष्पादन निर्देश के लक्ष्य के रूप में , या प्रोग्राम विकास में बाद में सक्रिय निर्देशों द्वारा प्रतिस्थापित किए जाने वाले प्लेस-होल्डर के रूप में (या जब पुनर्संगठित करना समस्याग्रस्त या समय लेने वाला होगा तो हटाए गए निर्देशों को प्रतिस्थापित करना)। कुछ घटनाओं में, एनओपी के अप्रौढ दुष्प्रभाव हो सकते हैं; उदाहरण के लिए, मोटोरोला 68000 श्रृंखला के प्रोसेसर पर, एनओपी ऑपकोड पाइपलाइन (कंप्यूटिंग) के तादात्म्य का कारण बनता है।[1]
कुछ सीपीयू वास्तुकला के लिए एनओपी निर्देश नीचे सूचीबद्ध हैं:
सीपीयू आर्किटेक्चर | अनुदेश स्मरणीय | बाइट्स | ऑपकोड | टिप्पणियाँ |
---|---|---|---|---|
इंटेलl एक्स86 सीपीयू परिवार | एनओपी
|
1; 1–9 के लिए आई686 और एक्स86-64 | 0एक्स90[2] | 0एक्स90 लंबे मोड को छोड़कर सभी मोड में एक्ससीएचजी ईएएक्स, ईएएक्स को डिकोड करता है, जहां ऑपकोड 0एक्स90 का अभी भी कोई प्रभाव एनओपी है। इंटेल के मैनुअल में लंबी एन्कोडिंग का वर्णन किया गया है। |
इंटेलl 8051 / एमसीएस-51 परिवार | एनओपी
|
1 | 0एक्स00 | |
एआरएम ए32 | एनओपी
|
4 | 0एक्स00000000 | यह अंडेक आर0, आर0, आर0 के लिए है। असेंबली निर्देश एनओपी संभवतः मोव आर0, आर0 तक विस्तारित होगा जो 0एक्सE1ए00000 (लिटिल-एंडियन आर्किटेक्चर) एन्कोड किया गया है। |
एआरएम टी32 (16 बिट) | एनओपी
|
2 | 0एक्सb000 | एडीडी एसपी के लिए ऑपकोड, #0 - स्टैक पॉइंटर में शून्य जोड़ें (कोई ऑपरेशन एनओपी)। असेंबली निर्देश एनओपी संभवतः mov आर8, आर8 तक विस्तारित होगा जो 0एक्स46सी0 एन्कोडेड है। |
एआरएम टी32 (32 बिट) | एनओपी
|
4 | 0एक्सF3एएफ 8000 | |
एआरएम ए64 (64 बिट) | एनओपी
|
4 | 0एक्सD503201एफ | |
एवीआर | एनओपी
|
2 | 0एक्स0000 | एक घड़ी चक्र |
आईबीएम सिस्टम/360, आईबीएम सिस्टम/370, आईबीएम सिस्टम/390, जेड/आर्किटेक्चर, यूनिवैक सीरीज 90 | एनओपी
|
4 | 0एक्स47000000 or 0एक्स470एनएनएनएनएन or 0एक्स47एन0एनएनएनएन where "एन" is कोई भी 4-बिट वैल्यू. | एनओपी ("नो-ऑप") और एनओपीआर ("नो-ऑप रजिस्टर") क्रमशः "ब्रांच ऑन कंडीशन" या "ब्रांच ऑन कंडीशन रजिस्टर" निर्देशों का एक उपसमूह हैं; दोनों संस्करणों में एनO-OP उत्पन्न करने के लिए दो विकल्प हैं।
एनओपी और एनओपीआईआर दोनों निर्देशों के मामले में, दूसरे बाइट में पहला 0 "मास्क" मान है, परीक्षण करने की स्थिति जैसे कि बराबर, बराबर एनओपी, उच्च, निम्न, आदि। यदि मास्क 0 है, तो कोई शाखा एनओपी है घटित होना। एनओपीआईआर निर्देश के मामले में, दूसरे बाइट में दूसरा मान शाखा के लिए रजिस्टर है। यदि रजिस्टर 0 चुना जाता है, तो मास्क मूल्य की परवाह किए बिना कोई शाखा एनओपी होती है। इस प्रकार, यदि दूसरे बाइट में दोनों में से कोई भी मान 0 है, तो शाखा एनओपी होगी। एनओपी निर्देश के मामले में, दूसरे बाइट में दूसरा मान संयुक्त आधार रजिस्टर, विस्थापन रजिस्टर और ऑफसेट पते का "आधार" रजिस्टर है। यदि आधार रजिस्टर भी 0 है, तो विस्थापन रजिस्टर या विस्थापन पते के मूल्य की परवाह किए बिना शाखा एनओपी ली जाती है। |
एनओपीआर
|
2 | 0एक्स0700 या 0एक्स0700एन या 0एक्स 0700एन0 जहां "एन" कोई 4-बिट मान है। | ||
सुपर एच | एनओपी
|
2 | 0एक्स0009 | |
एमआईपीएस | एनओपी
|
4 | 0एक्स00000000 | एसएलएल आर0,आर0,0 के लिए खड़ा है, जिसका अर्थ है: तार्किक रूप से रजिस्टर 0 शून्य बिट्स को बाईं ओर स्थानांतरित करें और परिणाम को रजिस्टर 0 में संग्रहीत करें। रजिस्टर 0 पर लिखने पर ध्यान एनओपी दिया जाता है; इसमें हमेशा 0 होता है. |
एमआईपीएस-एक्स | एनओपी
|
4 | 0एक्स60000019 | (आर0,आर0,आर0 जोड़ने के लिए विस्तारित ऑपकोड) |
एमआईएक्स | एनओपी
|
1 शब्द | ± * * * * 0 | * बाइट्स मनमाने हैं, और 0 से अधिकतम बाइट तक कुछ भी हो सकते हैं (63-99 की सीमा में होना आवश्यक है)। दिव्यएक्स साइन-परिमाण प्रतिनिधित्व का उपयोग करता है। |
एमएमआईएक्स | एसडब्ल्यूवाईएम
|
4 | 0एक्सएफडी****** | एसडब्ल्यूवाईएम का मतलब है "अपनी मशीनरी के प्रति सहानुभूति रखें"। * अंक मनमाने ढंग से चुने जा सकते हैं। |
मोटोरोला 68000 परिवार | एनओपी
|
2 | 0एक्स4इ71 | यह को सिंक्रनाइज़ करता है पाइपलाइन और निर्देश ओवरलैप को रोकता है।.[1] |
मोटोरोला 6809 | एनओपी
|
1 | 0एक्स12 | |
एमओएस टेक्नोलॉजी 65एक्सएक्स (उदा. 6502) | एनओपी
|
1 | 0एक्सEA | एनओपी दो घड़ी चक्रों का उपभोग करता है। अपरिभाषित ऑपकोड में एनएमओएस संस्करणों को 65एक्सएक्स परिवार were सीoएनverted to be एनओपी में अलग-अलग निर्देश लंबाई और चक्र समय के एनओपी में परिवर्तित किया गया था। 65सी02.
|
एनओपी
|
4 | 0एक्स60000000 | (ओआरआई आर0,आर0,0 के लिए विस्तारित ऑपकोड) | |
पीआईसी माइक्रोकंट्रोलर | एनओपी
|
12 बिट्स | 0b000000000000 | एमओवीडब्ल्यू 0,डब्ल्यू |
आरआईएससी-वी | एनओपी
|
4 | 0एक्स00000013 | एडीडीआई एक्स0, एक्स0, 0 |
एसपीएआरसी | एनओपी
|
4 | 0एक्स01000000 | सेठी 0, %जी0 के लिए खड़ा है जो हार्डवेयर्ड-टू-जीरो %जी0 रजिस्टर को शून्य करता है |
जेड80 | एनओपी
|
1 | 0एक्स00 | बिना किसी प्रभाव के कुछ अन्य निर्देश हैं (और वही समय): एलडी ए, ए, एलडी बी, बी आदि। |
पीडीपी-10 | जेएफसीएल 0, (पारंपरिक)
जम्प, सेटा, सेताई, सीएआई, टीआरएन, टीएलएन |
1 शब्द | 25500******* (अष्टभुजाकार) | कूदो कभी मत
कभी कूदो मत, कुछ भी सेट मत करो, कभी मत छोड़ो |
पीडीपी-11 | एनओपी
|
16 बिट्स | 000240 (अष्टभुजाकार) | कोई भी शर्त कोड साफ़ न करें |
वीएएक्स | एनओपी
|
1 | 0एक्स01 | विलंब प्रोसेसर प्रकार पर निर्भर है |
हार्डवेयर डिज़ाइन के दृष्टिकोण से, बस के अनमैप्ड क्षेत्रों को अक्सर शून्य लौटाने के लिए डिज़ाइन किया जाता है; चूंकि एनओपी स्लाइड व्यवहार अक्सर वांछनीय होता है, यह इसे ऑल-जीरोज़ ऑपकोड के साथ कोडिंग करने में पूर्वाग्रह देता है।
कोड
एक कार्य या प्रोग्रामिंग भाषा कथनों का अनुक्रम एक एनओपी या अशक्त कथन है यदि इसका कोई प्रभाव एनओपी है। कुछ संदर्भों में कुछ भाषाओं की प्रोग्रामिंग भाषा वाक्य - विन्यास द्वारा शून्य कथनों की आवश्यकता हो सकती है।
अदा
एडा (प्रोग्रामिंग भाषा) में, एनयूएलएल
कथन एनओपी के रूप में कार्य करता है।[3] जैसा कि वाक्यविन्यास निषिद्ध करता है कि नियंत्रण कथन या कार्य खाली हों, एनयूएलएल
कथन का उपयोग यह निर्दिष्ट करने के लिए किया जाना चाहिए कि किसी कार्रवाई की आवश्यकता एनओपी है। (इस प्रकार, यदि प्रोग्रामर कथनों का अनुक्रम लिखना भूल जाता है, तो प्रोग्राम संकलित करने में विफल हो जाएगा।)
सी और डेरिवेटिव
सी में सबसे सरल एनओपी स्टेटमेंट शून्य स्टेटमेंट है, जो एक स्टेटमेंट की आवश्यकता वाले संदर्भ में सिर्फ एक अर्ध-कोलन है।
;
एक खाली ब्लॉक (यौगिक विवरण) भी एक एनओपी है, और अधिक सुपाठ्य हो सकता है:
{}
कुछ घटना में, जैसे किसी कार्य का मुख्य भाग, एक ब्लॉक का उपयोग किया जाना चाहिए, लेकिन यह खाली हो सकता है। सी में, कथन खाली एनओपी हो सकते - सरल कथन ए के साथ समाप्त होने चाहिए; (अर्धविराम) जबकि यौगिक कथन {} (ब्रेसिज़) में संलग्न होते हैं, जिन्हें स्वयं निम्एनयूएलएलिखित अर्धविराम की आवश्यकता एनओपी होती है। इस प्रकार उन संदर्भों में जहां एक कथन व्याकरणिक रूप से आवश्यक है, ऐसे कुछ शून्य कथन का उपयोग किया जा सकता है।
शून्य कथन अपने आप में बेकार है, लेकिन व्यापक संदर्भ में इसका वाक्यात्मक उपयोग हो सकता है, उदाहरण के लिए, लूप के संदर्भ में:
while (getchar() != '\n') {}
वैकल्पिक रूप से,
while (getchar() != '\n')
;
या अधिक संक्षेप में:
while (getchar() != '\n');
(ध्यान दें कि अंतिम फॉर्म भ्रमित करने वाला हो सकता है, और इस तरह कुछ संकलकों या संकलक विकल्पों के साथ एक चेतावनी उत्पन्न होती है, क्योंकि पंक्ति के अंत में कोष्ठक के बाद रखे जाने पर अर्धविराम प्रायः कार्य कॉल निर्देश के अंत को इंगित करता है)।
उपरोक्त कोड कार्य गेटसीहर() को तब तक कॉल करना जारी रखता है जब तक कि यह एक \एन (न्यूलाइन) वर्ण एनओपी लौटाता है, अनिवार्य रूप से मानक इनपुट के वर्तमान रीडिंग स्थान को अगली पंक्ति की प्रारम्भ में तेजी से अग्रेषित करता है।
फोरट्रान
फोरट्रान में, चालू रखना
स्टेटमेंट का उपयोग कुछ संदर्भों में किया जाता है जैसे कि डीओ लूप में अंतिम स्टेटमेंट, यदपि इसका उपयोग कहीं भी किया जा सकता है, और इसमें कोई कार्यक्षमता एनओपी होती है।
जावास्क्रिप्ट
जावास्क्रिप्ट भाषा में कोई अंतर्निहित एनओपी कथन एनओपी है। कई कार्यान्वयन संभव हैं:
- उपयोग
;
खाली बयान[4] या{}
एनओपी (कोड)#सी_एंड_डेरिवेटिव्स उदाहरणों की तरह ही खाली ब्लॉक स्टेटमेंट; - उपयोग
अपरिभाषित
याएनयूएलएल
अभिव्यक्ति को एक पूर्ण कथन के रूप में (एक अभिव्यक्ति कथन) जब पिछली विधियों को वाक्य - विन्यास द्वारा अनुमति एनओपी दी जाती है।
विकल्प, उन स्थितियों में जहां किसी कार्य की आवश्यकता होती है, ये हैं:
- उपयोग
फ़ंक्शन.प्रोटोटाइप()
अंतर्निहित कार्य, जो किसी भी तर्क को स्वीकार करता है और रिटर्न देता हैअपरिभाषित
;[5] - तृतीय-पक्ष लाइब्रेरी में उपलब्ध एनओपी कार्य का उपयोग करें—नीचे देखें;
- एक कस्टम एनओपी कार्य को परिभाषित करें, जैसा कि निम्एनयूएलएलिखित उदाहरण में है (ईएस6 एरो कार्य वाक्य - विन्यास का उपयोग करके):
const noop = () => {};
एंगुलरजेएस
कोणीयजेएस फ्रेमवर्क कोणीय.एनओपी कार्य प्रदान करता है जो कोई ऑपरेशन एनओपी करता है।
जेक्वेरी
जेक्वेरी लाइब्रेरी एक कार्य प्रदान करती है जेक्वेरी.एनओपी()
, जो कुछ एनओपी करता.[6]
लोदाश
लॉडैश लाइब्रेरी एक कार्य प्रदान करती है _.एनओपी()
, जो अपरिभाषित लौटाता है और कुछ एनओपी करता।[7]
पास्कल
सी के साथ, ; स्वयं द्वारा प्रयुक्त को पास्कल (प्रोग्रामिंग भाषा) में एक अशक्त कथन के रूप में उपयोग किया जा सकता है। वास्तव में, भाषा की विशिष्टता के कारण, आरंभ/समाप्ति ब्लॉक में, समाप्ति कथन से पहले अर्धविराम वैकल्पिक होता है, इस प्रकार वहां प्रयुक्त अर्धविराम अनावश्यक होता है।
इसके अलावा, एक ब्लॉक जिसमें सम्मिलित है आरंभ समाप्ति;
कोई कार्रवाई न होने का संकेत देने के लिए प्लेसहोल्डर के रूप में उपयोग किया जा सकता है, भले ही इसे किसी अन्य आरंभ/समाप्ति ब्लॉक के अंदर रखा गया हो।
पायथन
पायथन (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा में एक पायथन (प्रोग्रामिंग भाषा)#स्टेटमेंट्स और नियंत्रण प्रवाह| हैउत्तीर्ण
ऐसा कथन जिसे निष्पादित करने पर कोई प्रभाव एनओपी पड़ता है और इस प्रकार यह एनओपी के रूप में कार्य करता है। इसका उपयोग मुख्य रूप से पायथन के ऑफ-साइड नियम | इंडेंटेशन-सेंसिटिव वाक्य - विन्यास के कारण सही वाक्य - विन्यास सुनिश्चित करने के लिए किया जाता है; उदाहरण के लिए किसी कक्षा (कंप्यूटर प्रोग्रामिंग) की परिभाषा के लिए वाक्य - विन्यास के लिए श्रेणीतर्क के साथ एक इंडेंटेड ब्लॉक की आवश्यकता होती है, जिसे इस प्रकार व्यक्त किया जाना चाहिए उत्तीर्ण
जब यह खाली होना चाहिए.
शेल स्क्रिप्टिंग (बैश, ज़ेडएसएच, आदि)
':
' [कोलन] कमांड एक शेल बिल्टिन है जिसका एनओपी (कुछ न करने वाला ऑपरेशन) के समान प्रभाव होता है। यह तकनीकी रूप से एनओपी एनओपी है, क्योंकि यह विशेष पैरामीटर $? को बदल देता है। (अंतिम कमांड की निकास स्थिति) से 0. इसे 'सही' में निर्मित शेल का पर्याय माना जा सकता है, और इसकी निकास स्थिति सत्य (0) है।[8][9][10]
टेक्स मैक्रो भाषा (सीओएनमूलपाठ, लाटेकस, आदि)
टेक्स टाइपोग्राफ़िकल सिस्टम की मैक्रो भाषा में है \विश्राम
आज्ञा।[11] यह अपने आप में कुछ एनओपी करता है, लेकिन इसका उपयोग तत्काल पूर्ववर्ती कमांड को किसी भी बाद के टोकन को पार्स करने से रोकने के लिए किया जा सकता है।[12]
एनओपी प्रोटोकॉल कमांड
टेलनेट जैसे कई प्रोटोकॉल (कंप्यूटिंग) में एक एनओपी कमांड सम्मिलित होता है जिसे क्लाइंट किसी अन्य कार्रवाई का अनुरोध किए बिना सर्वर से प्रतिक्रिया का अनुरोध करने के लिए जारी कर सकता है। इस तरह के कमांड का उपयोग कीपलाइव या सर्वर रिस्पॉन्सिव होने के लिए किया जा सकता है। एक एनओपी कमांड निम्एनयूएलएलिखित प्रोटोकॉल का हिस्सा है (यह एक आंशिक सूची है):
- टेलनेट
- फाइल ट्रांसफर प्रोटोकॉल
- सरल डाक स्थानांतरण प्रोटोकॉल
- एक्स विंडो कोर प्रोटोकॉल
- डाकघर प्रोटोकॉल
- नेटवर्क समाचार स्थानांतरण प्रोटोकॉल
- फिंगर प्रोटोकॉल
- इंटरनेट संदेश एक्सेस प्रोटोकॉल
- बिटटोरेंट (प्रोटोकॉल)
ध्यान दें कि सूचीबद्ध अन्य प्रोटोकॉल के विपरीत, आईएमएपी4 एनओपी कमांड का एक विशिष्ट उद्देश्य है - यह सर्वर को क्लाइंट को कोई भी लंबित अधिसूचना भेजने की अनुमति देता है।
जबकि अधिकांश टेलनेट या एफ़टीपी सर्वर एनओओपी कमांड का जवाब ओके या +ओके के साथ देते हैं, कुछ प्रोग्रामर ने क्लाइंट के लिए विचित्र प्रतिक्रियाएं जोड़ दी हैं। उदाहरण के लिए, एफटीपीडी
एमआईएनआईएक्स का डेमॉन एनओपी को संदेश के साथ प्रतिक्रिया देता है:[13]
एफ़टीपी सर्वर रिटर्न कोड एनओपी की सूची आपके लिए भी!
क्रैकिंग
एनओपी अक्सर तब सम्मिलित होते हैं जब सॉफ्टवेयर क्रैकिंग सॉफ़्टवेयर होता है जो सीरियल नंबर, विशिष्ट हार्डवेयर या सॉफ़्टवेयर आवश्यकताओं, हार्डवेयर डोंगल की उपस्थिति या अनुपस्थिति आदि की जांच करता है।[citation needed] यह प्रक्रिया सुरक्षा जांच को बायपास करने के लिए सबरूटीन को बदलकर पूरी की जाती है और इसके बजाय केवल अपेक्षित मूल्य लौटाया जाता है जिसके लिए जाँच की जा रही है। क्योंकि सुरक्षा जांच रूटीन में अधिकांश निर्देश अप्रयुक्त होंगे, इन्हें एनओपी से बदल दिया जाएगा, इस प्रकार बाइनरी में आने वाली हर चीज की स्थिति में बदलाव किए बिना सॉफ्टवेयर की सुरक्षा कार्यक्षमता को हटा दिया जाएगा।
सुरक्षा शोषण
एनओपी ऑपकोड का उपयोग एनओपी स्लाइड बनाने के लिए किया जा सकता है, जो निर्देश सूचक का सटीक मान अनिश्चित होने पर कोड को निष्पादित करने की अनुमति देता है (उदाहरण के लिए, जब बफर ओवरफ्लो के कारण स्टैक पर कार्य का रिटर्न पता ओवरराइट हो जाता है)।
यह भी देखें
- कंप्यूटर वास्तुकला
- एचएलटी (एक्स86 निर्देश) - सीपीयू को रोक देता है
- हॉल्ट एंड कैच फायर (कंप्यूटिंग) - सीपीयू को भी रोक देता है
- पहचान कार्य - एनओपी के समतुल्य कार्यात्मक प्रोग्रामिंग
- एक्सवायेजेडजेडवाये (कंप्यूटिंग) - एक कमांड जो कभी-कभी एनओपी के स्थान पर उपयोग किया जाता है
- आईईएफबीआर14 - मेनफ्रेम टॉटोलॉजी
- भराव पाठ
- टिप्पणी (कंप्यूटर प्रोग्रामिंग) - प्रायः प्रोग्रामर के लिए एनोटेशन जिन्हें संकलकों और दुभाषियों द्वारा अनदेखा किया जाता है
संदर्भ
- ↑ 1.0 1.1 "Motorola 68000 Programmer's Reference Manual" (PDF).
- ↑ "Intel 64 and IA-32 Architectures Software Developer's Manual: Instruction Set Reference A-Z" (PDF). Retrieved 2012-03-01.
- ↑ Ada Reference Manual — null statements. "The execution of a null_statement has no effect."
- ↑ MDN JavaScript reference – empty statement. "The empty statement is a semicolon (
;
) indicating that no statement will be executed, even if JavaScript syntax requires one." - ↑ ECMAScript Language Specification – Edition 5.1 – Properties of the Function Prototype Object
- ↑ jQuery.noop() from jQuery API documentation
- ↑ "लोदाश दस्तावेज़ीकरण". lodash.com (in English). Retrieved 2017-12-15.
- ↑ Advanced Bash-Scripting Guide > Chapter 3. Special Characters
- ↑ bash manpage > SHELL BUILTIN COMMANDS
- ↑ zsh manpage (zshbuiltins) > SHELL BUILTIN COMMANDS
- ↑ Bausum, David (2002). "TeX Primitive Control Sequences". TeX संदर्भ मैनुअल. Kluwer Academic Publishers. Retrieved 1 April 2020.
According to The TeXbook, 'TeX does nothing' when it encounters
\relax
. Actually,\relax
may tell TeX, 'This is the end of what you've been doing'. - ↑ TeX wikibook – relax
- ↑ "ftpd.c". Retrieved 2016-06-19.