الحصول على عنوان بدء المكدس في برمجة التجميع
سؤال
هل من الممكن الحصول على عنوان البداية الفعال لمكدس بعد الانتهاء من عمليات المكدس مثل Push and Pop في برمجة التجميع؟
المحلول
تتمثل الاتفاقية في حفظ (e) sp إلى (e) bp في بداية وظيفتك ، واستخدام (e) bp للعنوان المتغير المحلي.
نصائح أخرى
أبسط حالة هو مجرد حفظ مؤشر المكدس الأولي لبعض المتغيرات للوصول إليه عند الحاجة. إذا لم يكن الأمر كذلك ، فاستخدم واجهة برمجة تطبيقات معينة من النظام الأساسي ، على سبيل المثال VirtualQuery على Windows ، باستخدام قيمة SP الحالية كمعلمة أولى. سيكون العنوان الأساسي في حقل BaseadDress لهيكل Memory_Basic_Information. في Posix يمكن القيام بالمهمة باستخدام وظائف pthread
لا تنتمي إلى StackOverflow