शिक्षक उत्तर कुंजी

स्टैक और फ़ंक्शन

चार प्रकार के प्रमाण लें: संबंधित स्थिति का अनुमान; सीमाओं सहित अलग मामलों में व्यवहार; रिकॉर्ड और स्थिति से व्याख्या; तथा एक अंतर का तर्कपूर्ण सुधार। कागज़ या विद्यालय की स्वीकृत प्रक्रिया में हर पहलू को शुरुआती, सहायता से या स्वतंत्र रूप से दर्ज करें। चुनौती पास होना मशीन के व्यवहार का प्रमाण है, लेखन का या पूरी समझ का नहीं। समान रूप से सही प्रोग्राम स्वीकार करें; सार्वजनिक कुंजी एक उदाहरण है, एकमात्र उत्तर नहीं।

सार्वजनिक शिक्षण सामग्री। समाधान उदाहरण हैं; अन्य समान रूप से सही प्रोग्राम भी वास्तविक जाँच पास कर सकते हैं।

19. स्टैक: अंत में रखा, पहले निकला

डेटा स्टैक में मान बचाएँ और उलटे क्रम में लौटाएँ।

यह पाठ खोलें →

1. अनुमान और निष्पादन क्रम

प्रयोग प्रोग्राम चलाने से पहले आउटपुट अनुमान करें और पहले तीन चलाए निर्देशों का क्रम लिखें। आवश्यक रजिस्टर, फ्लैग या मेमोरी दर्ज करें। फिर एक-एक कदम चलाकर मिलाएँ।

LOAD 11
PUSH
LOAD 22
PUSH
POP
PRINT
POP
PRINT
HALT

इनपुट कतार में रखें: कोई नहीं

मेमोरी शुरू करें: शुरू में सभी बाइट शून्य

प्रयोग अनुमान कुंजी

आउटपुट: 22, 11

निर्देशपहले PCबाद में PCपहले R0बाद में R0संबंधित स्थितिआउटपुट
LOAD01011{"registers":[11,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}कोई नहीं
PUSH121111{"registers":[11,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":254,"stack":[11],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}कोई नहीं
LOAD231122{"registers":[22,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":254,"stack":[11],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}कोई नहीं

2. बनाएँ और जाँचें

दो पूर्णांक पढ़ें, दोनों डेटा स्टैक पर बचाएँ और फिर उलटे क्रम में छापें। निश्चित मानों के बजाय PUSH और POP उपयोग करें।

ज़रूरी निर्देश प्रकार: INPUT, PUSH, POP

चुनौती समाधान उदाहरण

INPUT
PUSH
INPUT
PUSH
POP
PRINT
POP
PRINT
HALT

वास्तविक जाँच मामले

मामला 1
इनपुट
3, 8
शुरुआती मेमोरी
शुरू में सभी बाइट शून्य
अपेक्षित आउटपुट
8, 3
मामला 2
इनपुट
-4, 0
शुरुआती मेमोरी
शुरू में सभी बाइट शून्य
अपेक्षित आउटपुट
0, -4
मामला 3
इनपुट
9, 9
शुरुआती मेमोरी
शुरू में सभी बाइट शून्य
अपेक्षित आउटपुट
9, 9

3. मशीन समझाएँ

दूसरा दिया मान पहले क्यों छपता है?

तर्क और शिक्षण टिप्पणी

PUSH/POP में अंत में रखा पहले निकलता है; 3,8 से 8,3; कॉल फ़्रेम डेटा नहीं हैं।