2015-04-22 9 views
6

यह कहा जाता है कि "छोड़" अनुदेश के समान है:विधानसभा x86 - "छोड़" निर्देश

movl %ebp, %esp 
popl %ebp 

मैं समझता हूँ movl %ebp, %esp हिस्सा है, और यह स्मृति को संग्रहित जारी करने के लिए (के रूप में this question में चर्चा) में कार्य करता है कि ।

लेकिन popl %ebp कोड का उद्देश्य क्या है?

+3

यह 'ebp' पॉप करता है। – immibis

+0

"डुप्लिकेट प्रश्न" वास्तव में इस प्रश्न का उत्तर नहीं देता है; फिर से खोलने के लिए मतदान ... – immibis

उत्तर

13

LEAVEENTER के समकक्ष है। ENTER अनुदेश पहले ESPEBP में प्रतियां ढेर पर EBP धक्का और फिर से एक ढेर फ्रेम सेट, इसलिए LEAVE विपरीत करना है, यानि कि ESP को EBP कॉपी और उसके बाद वर्ष EBP ढेर से बहाल।

अनुभाग प्रक्रिया नामित ब्लॉक-संरचना भाषाएं के लिए कॉल Intel's Software Developer's Manual खंड 1 में आप के बारे में कैसे ENTER और LEAVE काम अधिक पढ़ने के लिए चाहते हैं, तो देखें।

+0

ऐसा लगता है कि मैं ईबीपी और ईएसपी की अवधारणा को समझ नहीं पा रहा हूं। क्या आप कृपया मेरे लिए इन दोनों शर्तों को समझा सकते हैं? – alexswo

+0

'ईबीपी' और 'ईएसपी' केवल 32-बिट सामान्य प्रयोजन रजिस्ट्रार हैं। यद्यपि 'ईएसपी 'का एक विशेष कार्य है, जो स्टैक पॉइंटर के रूप में कार्य करना है, और इसे कुछ निर्देशों (जैसे' पुश', 'पॉप', 'कॉल') द्वारा स्पष्ट रूप से संशोधित किया जाता है। सम्मेलन द्वारा 'ईबीपी' आमतौर पर कार्यों के भीतर एक ढेर फ्रेम सूचक के रूप में प्रयोग किया जाता है। – Michael

+0

[एक पृथक्करण कोड में ईबीपी और एएसपी का अर्थ क्या है?] (Http://stackoverflow.com/questions/26684506/what-does-ebp-and-esp-in-a-dissembly-code-means) [क्या हैं ईएसपी और ईबीपी रजिस्टर?] (http://stackoverflow.com/questions/21718397/what-are-the-esp-and-the-ebp-registers?rq=1) –

संबंधित मुद्दे