स्टैक और फ़ंक्शन · 30 में पाठ 19 · लगभग 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इमोजी CPU प्रयोगशाला
इमोजी प्रोग्राम
LOAD, ADD या दूसरा निर्देश नाम लिखकर Space दबाएँ ताकि इमोजी जुड़े। Ctrl/⌘ + Enter चलाता/रोकता है; Escape रोकता है; Ctrl/⌘ + ] इंडेंट करता है। Tab फोकस बदलता है। लेबल कोलन लेते हैं। जंप शून्य-आधारित निर्देश पते लेते हैं।
निर्देश मानचित्र और ब्रेकपॉइंट (0)
ब्रेकपॉइंट निर्देश से पहले रोकते हैं। चलाएँ रुके ब्रेकपॉइंट के पार एक बार बढ़ता है; एक कदम सीधे निर्देश चलाता है। स्रोत बदलने से पुराने ब्रेकपॉइंट और मशीन स्थिति साफ़ होते हैं।
CPU रजिस्टर
- 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 लेती है। इस ब्राउज़र में रहती है और सर्वर पर नहीं जाती।