nopछद्म

nop

छद्म
RISC-V असेंबली संदर्भ

lyszt.net nop और अन्य RISC-V निर्देशों को अधिक विस्तार से कवर करता है।

विवरण

nop कुछ नहीं करता। यह नाम "no operation" को छोटा करता है। जब प्रोसेसर किसी nop तक पहुँचता है, तो कोई रजिस्टर नहीं बदलता, कोई मेमोरी नहीं छूटी जाती, और निष्पादन अगले निर्देश के साथ जारी रहता है। यह प्रोग्राम में एक स्लॉट लेता है और समय का एक टिक बीत जाता है।

nop नीचे दी गई पंक्ति के लिए एक छद्म-निर्देश है।

addi zero, zero, 0

RISC-V में zero नामक एक रजिस्टर शामिल है जो हमेशा 0 रखता है। पढ़ने पर 0 लौटता है, और लिखना त्याग दिया जाता है। वह addi 0 और 0 जोड़ता है और परिणाम को त्याग देता है, इसलिए निर्देश पूरा हो जाता है और कुछ नहीं बदलता। RISC-V को समर्पित nop की आवश्यकता नहीं है क्योंकि zero रजिस्टर एक प्रदान करता है।

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

RISC-V मैनुअल कहता है कि nop किसी भी आर्किटेक्चरली दृश्यमान स्थिति को नहीं बदलता, जिसका अर्थ है कि प्रोग्राम जो कुछ भी देख सकता है उसमें कुछ भी नहीं, सिवाय pc को आगे बढ़ाने और किसी भी प्रदर्शन काउंटर को बढ़ाने के। यह दो उपयोग देता है: कोड सेगमेंट को उन पता सीमाओं पर संरेखित करना जो हार्डवेयर के अनुकूल हैं, और कोड में बाद के परिवर्तनों के लिए जगह छोड़ना। मैनुअल बताता है कि एन्कोडिंग addi का उपयोग करती है क्योंकि वह निर्देश अधिकांश सिस्टम पर सबसे कम संसाधन खर्च करता है, क्योंकि यह केवल एक रजिस्टर पढ़ता है।

इस सिम्युलेटर में nop प्रयोगों के दौरान स्पेसर या मार्कर के रूप में कार्य करता है। एक पर कदम बढ़ाने से pc 4 से आगे बढ़ता है और कोई रजिस्टर या मेमोरी स्थान नहीं बदलता।

विस्तृत होता है

addi zero, zero, 0

असेंबलर इस छद्म-निर्देश को ऊपर सूचीबद्ध वास्तविक निर्देश या निर्देशों से बदल देता है।

उदाहरण

li t0, 1
nop              # advances one instruction, changes nothing
addi t0, t0, 1   # t0 = 2