المكدّس والدوال · الدرس 19 من 30 · نحو 12 دقيقة
عمليات المكدّس: الأخير دخولًا هو الأول خروجًا
احفظ القيم في مكدّس البيانات واسترجعها بترتيب معكوس.
01 / اشرح
افهم الفكرة
تحفظ PUSH قيمة R0 في مكدّس البيانات. تزيل POP آخر قيمة دُفعت وتضعها في R0. يشبه ترتيب الأخير دخولًا والأول خروجًا كومة أطباق: يسهل أخذ أحدث طبق أولًا.
مكدّس البيانات التعليمي منفصل عن شبكة الذاكرة ذات 256 بايت. يبدأ SP عند 255 وينقص مع البيانات المحفوظة أو أطر الاستدعاء. السعة المشتركة للمكدّس 256 عنصرًا؛ وتسبّب POP على مكدّس بيانات فارغ خطأً.
02 / جرّب
راقب ما يحدث
توقّع 22 ثم 11. راقب عودة المكدّس إلى الفراغ وSP إلى 255.
LOAD 11
PUSH
LOAD 22
PUSH
POP
PRINT
POP
PRINT
HALTاستخدم خطوة لاتّباع تعليمة واحدة في كل مرة. يمكنك تغيير المثال وإعادة تشغيله.
03 / التحدّي
اجعله يعمل
اقرأ عددين صحيحين، واحفظ كليهما في مكدّس البيانات، ثم اطبعهما بترتيب معكوس. استخدم PUSH وPOP بدل قيم ثابتة.
يشغّل الفاحص البرنامج الحالي في محرّرك على آلة جديدة لكل حالة من حالات الاختبار الـ3. ويوفّر المدخلات والذاكرة المهيّأة بنفسه؛ لا تحدّد مخرجات المختبر الحالية ولا ذاكرته نتيجتك.
INPUT
PUSH
INPUT
PUSH
#
HALTهل تحتاج إلى تلميح؟
تغيّر كل POP قيمة R0، لذلك اطبع قبل إزالة القيمة التالية.
اعرض حلًا محلولًا
اقرأ البرنامج، وتوقّع أثر كل تعليمة، ثم نفّذه خطوةً خطوة في المختبر.
INPUT
PUSH
INPUT
PUSH
POP
PRINT
POP
PRINT
HALTمختبر معالج الرموز التعبيرية
برنامج الرموز التعبيرية
اكتب LOAD أو ADD أو تعليمة أخرى ثم مسافة لإدراج الرمز. يشغّل Ctrl/⌘ + Enter أو يوقف مؤقتًا؛ ويوقف Escape مؤقتًا؛ ويزيد Ctrl/⌘ + ] الإزاحة. ينقل Tab التركيز. تستخدم الوسوم نقطتين رأسيتين. تستخدم القفزات عناوين تعليمات تبدأ من صفر.
خريطة التعليمات ونقاط التوقّف (0)
توقف نقاط التوقّف قبل التعليمة. يتجاوز تشغيل نقطة التوقّف الحالية مرةً واحدة عند الاستئناف؛ وتنفّذ خطوة التعليمة مباشرةً. يمسح تحرير المصدر نقاط التوقّف القديمة وحالة الآلة.
سجلات المعالج
- R0
- 0
- R1
- 0
- R2
- 0
- R3
- 0
- R4
- 0
- R5
- 0
- R6
- 0
- R7
- 0
المكدّسات وأطر الحلقات
SP = 255 − عمق البيانات − عمق الاستدعاءات. المكدّس منفصل عن الذاكرة.
مكدّس البيانات (من الأسفل إلى الأعلى)
فارغ
عناوين عودة الاستدعاءات (من الأسفل إلى الأعلى)
فارغ
أطر الحلقات
فارغ
المخرجات والمدخلات
نفّذ تعليمة PRINT لرؤية المخرجات.
المدخلات في الطابور: فارغ
الذاكرة · 256 بايت · 0 غير صفري
تعرض كل خلية العنوان:القيمة. R = قراءة في هذه الخطوة؛ W = كتابة في هذه الخطوة. اختر خليةً لفحصها أو تهيئتها قبل التنفيذ. استخدم الأسهم للتنقّل، وHome/End للصف، وCtrl/⌘ + Home/End للذاكرة كلها.
سجلّ التنفيذ · 0 عناصر
العناصر الأخيرة أدناه. افحص أي فهرس يبدأ من صفر لرؤية الحالة الكاملة المنفصلة قبل التنفيذ وبعده.
افحص تحدّيك
يمكنك إجراء هذا الفحص في أي وقت. يجب أن تنجح كل حالة لتسجيل الإنجاز.
يستخدم التقدّم localStorage فقط. يبقى في هذا المتصفّح ولا يُرسل إلى أي خادم.