एक जंप और कॉल निर्देश कैसे भिन्न है? यह उच्च स्तर की अवधारणाओं जैसे गोटो या प्रक्रिया कॉल से कैसे संबंधित है? (Am मैं तुलना में सही हूँ?)जंप और कॉल
यह मैं क्या सोचता है:
जम्प या गोटो किसी अन्य स्थान पर नियंत्रण के हस्तांतरण और नियंत्रण स्वचालित रूप से जहां यह कहा जाता है से बात करने के लिए वापस नहीं करता है ।
दूसरी तरफ, कॉल या प्रक्रिया/फ़ंक्शन कॉल उस बिंदु पर वापस आती है जहां से इसे कहा जाता है। अपनी प्रकृति में इस अंतर के कारण, भाषाएं आम तौर पर एक ढेर का उपयोग करती हैं और एक स्टैक फ्रेम को प्रत्येक प्रक्रिया के लिए वापस आने के लिए स्थान "याद" करने के लिए धक्का दिया जाता है। यह व्यवहार भी रिकर्सिव प्रक्रियाओं पर लागू होता है। पूंछ रिकर्सन के मामले में, प्रत्येक कॉल के लिए स्टैक फ्रेम को "धक्का" देने की आवश्यकता नहीं है।
आपके उत्तरों और टिप्पणियों की बहुत सराहना की जाएगी।
जब आप कहते हैं: "कॉल केवल जेएमपी का उपयोग करके लागू एक सुविधा समारोह है।" क्या इसका मतलब है कि कॉल परमाणु नहीं है (एक प्रोसेसर निर्देश)? – Anzurio
आपका मतलब है कि थ्रेड में movl के बीच बाधा उत्पन्न हो सकती है, लेकिन jmp से पहले, यदि कोई कॉल दो निर्देशों के रूप में लागू किया जाएगा? दस्तावेज़ों को देखकर: http://www.intel.com/Assets/PDF/manual/253666.pdf, यह कहता है कि प्रक्रिया पहले पते को स्टैक पर ले जाती है, और फिर कूद, स्पष्ट रूप से इसे अनुक्रम के रूप में बताती है। मुझे नहीं लगता कि यह परमाणु क्यों होना चाहिए, साथ ही, इससे कोई फर्क नहीं पड़ता? यह वैसे ही है जैसे आप jmp के ठीक बाद बाधित हो जाएंगे, क्योंकि jmp बिना शर्त है। – Anteru
यदि कॉल किया गया है, जहां से आप कॉल करते हैं, तो इसका मतलब है कि बहुत से 'कॉल' स्टैक ओवरफ्लो कर सकते हैं (यदि आप 'आरईटी' नहीं करते हैं), जबकि 'जेएमपी' के साथ स्टैक को भ्रष्ट करना असंभव है, लेकिन चालू दूसरी तरफ, आप तब तक कूद नहीं सकते जब तक कि आप उस स्थान को संग्रहीत नहीं करते जहां से आप स्वयं कूद गए थे। क्या वो सही है? सी के 'गोटो 'को इस मामले में' जेएमपी 'के बराबर होना चाहिए। – CoDEmanX