मैं असेंबली लैंग्वेज में एक शुरुआत कर रहा हूं और देखा है कि कंपाइलरों द्वारा उत्सर्जित x86 कोड आमतौर पर फ्रेम पॉइंटर को रिलीज / अनुकूलित मोड में भी इधर-उधर रखता है जब वह EBP
रजिस्टर को किसी और चीज के लिए इस्तेमाल कर सकता है।
मैं समझता हूं कि फ्रेम पॉइंटर क्यों डिबग करने के लिए कोड को आसान बना सकता है, और यदि alloca()
किसी फ़ंक्शन के भीतर कहा जाता है, तो यह आवश्यक हो सकता है । हालांकि, x86 में बहुत कम रजिस्टर हैं और उनमें से दो का उपयोग स्टैक फ्रेम के स्थान को धारण करने के लिए किया जाता है, जब कोई पर्याप्त होगा बस मुझे इससे कोई मतलब नहीं है। अनुकूलित / रिलीज़ बिल्ड में भी फ्रेम पॉइंटर को खराब विचार क्यों माना जाता है?