सी-जैसी भाषा में फ़ंक्शन में इनलाइन असेंबलर डालने पर, इस बारे में सम्मेलन क्या है कि आपको किस रजिस्टरों को स्क्रैच के लिए उपयोग करने की अनुमति है? क्या यह asm
ब्लॉक दर्ज करने से पहले सहेजे जाने वाले सभी रजिस्टरों के मूल्यों को सहेजने के लिए संकलक की ज़िम्मेदारी है? क्या यह प्रोग्रामर की ज़िम्मेदारी कहीं भी इन रजिस्टरों में मूल्यों को स्टोर करने और asm
ब्लॉक से बाहर निकलने से पहले उन्हें बहाल करने की ज़िम्मेदारी है? क्या कोई आम सम्मेलन है, या यह बहुत ही कार्यान्वयन-विशिष्ट है?इनलाइन असेंबलर: किस स्क्रैच रजिस्टरों का उपयोग किया जा सकता है?
6
A
उत्तर
9
इनलाइन असेंबली परिभाषा के अनुसार, संकलक-विशिष्ट है।
सबसे compilers कि समर्थन इनलाइन विधानसभा में एक वाक्य विन्यास है कि आप से संकेत मिलता है जो पंजीकृत करता विधानसभा द्वारा संशोधित कर रहे हैं अनुमति देता है। संकलक तब आवश्यकतानुसार उन रजिस्टरों को सहेज और पुनर्स्थापित कर सकता है।
2
आप कुछ बुला सम्मेलनों here में रजिस्टर के उपयोग पर पढ़ सकते हैं।
7
यह बहुत ही संकलक विशिष्ट है। हालांकि, एक यथार्थवादी उदाहरण के लिए x86 पर gcc लेते हैं। प्रारूप है:
asm (assembler template
: output operands (optional)
: input operands (optional)
: list of clobbered registers (optional)
);
जहां "क्लॉबर्ड रजिस्टरों की सूची" आप संकलक को बता रहे हैं जो आपके कोड का उपयोग कर रहा है।
यहाँ एक सरल स्मृति प्रतिलिपि कोड है:
asm ("movl $count, %%ecx;
up: lodsl;
stosl;
loop up;"
: /* no output */
:"S"(src), "D"(dst) /* input */
:"%ecx", "%eax"); /* clobbered list */
इन निर्देशों को देखते हुए, जीसीसी ब्लॉक में अन्य बातों के लिए eax और ECX का उपयोग कर नहीं किया जाएगा।
अधिक जानकारी here।
संबंधित मुद्दे
- 1. टाइम्स जब इनलाइन फ़ंक्शनिंग का उपयोग नहीं किया जा सकता
- 2. डेल्फी इनलाइन असेंबलर
- 3. असेंबलर में, रजिस्टरों का उपयोग अतिरिक्त और घटाव के बीच क्यों भिन्न होता है?
- 4. वेक्टर को सॉर्ट करने के लिए किस फ़ंक्शन का उपयोग किया जा सकता है?
- 5. विक्रेता परिभाषित प्रोफाइल के लिए ब्लूटूथ यूयूआईडी का किस प्रकार उपयोग किया जा सकता है?
- 6. पर्ल नियमित अभिव्यक्तियों के खिलाफ किस वर्ग की भाषा का उपयोग किया जा सकता है?
- 7. सीएलआईएसपी में स्क्रीन साफ़ करने के लिए किस कमांड का उपयोग किया जा सकता है?
- 8. जापानी पाठ को संभालने के लिए किस ल्यूसीन विश्लेषक का उपयोग किया जा सकता है?
- 9. डी इनलाइन असेंबलर: एक्सेस स्टेटिक वैरिएबल
- 10. एसएसई 2 इंट्रिनिक्स और जीसीसी इनलाइन असेंबलर
- 11. क्या Log4JLogger का मूल कारण पाया जा सकता है या उपयोग नहीं किया जा सकता है?
- 12. एक्सएएमएल में प्रतिशत मूल्यों का उपयोग किया जा सकता है?
- 13. CancelEventArgs जैसी घटनाओं का उपयोग कैसे किया जा सकता है?
- 14. उत्पादन कोड में स्टॉपवॉच का उपयोग किया जा सकता है?
- 15. गोला के बिना वैला का उपयोग किया जा सकता है?
- 16. clojure.algo.generic लाइब्रेरी का उपयोग कैसे किया जा सकता है?
- 17. जावा-बाइटकोड उत्पन्न करने के लिए कौन सी लाइब्रेरी/प्रोग्राम का उपयोग किया जा सकता है?
- 18. किस उद्देश्य के लिए Django का उपयोग किया जाता है?
- 19. तत्काल क्या किया जा सकता है?
- 20. किस प्रकार का कोड "पुनः प्रवेश" कहा जा सकता है?
- 21. क्या कोई रनटाइम सी ++ असेंबलर लाइब्रेरी है?
- 22. स्क्रैच
- 23. जावास्क्रिप्ट पैकेज कीवर्ड का उपयोग किस लिए किया जाता है?
- 24. Hadoop: JPS आदेश का उपयोग नहीं किया जा सकता
- 25. स्क्रैच
- 26. स्क्रैच
- 27. DLLImport Int ** - यह कैसे किया जा सकता है अगर यह किया जा सकता है
- 28. कर्नेल के लिए कोडिंग करते समय stdio का उपयोग किया जा सकता है ...?
- 29. स्क्रैच
- 30. क्या कमांड लाइन का उपयोग कर इंस्ट्रूमेंट्स का उपयोग किया जा सकता है?