दोहराव और काउंटर · 30 में पाठ 14 · लगभग 12 मिनट
काउंटर बनाना
1 से 10 तक छापें और गिनती को सामान्य बनाएँ।
01 / समझाएँ
विचार समझें
काउंटर वह स्थिति है जो हर चक्कर में एक बार बदलती है। वर्तमान मान छापें, एक जोड़ें और अगले चक्कर के लिए नया मान रखें। शुरुआत और दोहराव की गिनती पूरा क्रम तय करते हैं।
उलटी गिनती पीछे के जंप से चल सकती है और SUB के शून्य फ्लैग लगाने पर रुक सकती है। लेबल स्रोत पंक्तियाँ गिने बिना निकास और दोहराव के गंतव्य बताते हैं। दोहराव संख्या ज्ञात हो तो सीमित LOOP उपयोगी है।
02 / आज़माएँ
होते हुए देखें
5, 4, 3, 2, 1 अपेक्षित है। पिछला कदम हर घटाव दिखाता है।
LOAD 5
again: PRINT
SUB 1
JUMP_IF_ZERO done
JUMP again
done: HALTएक समय में एक निर्देश के लिए एक कदम लें। उदाहरण बदलकर फिर चला सकते हैं।
03 / चुनौती
इसे काम करने दें
0 से 10 तक N पढ़ें और 1 से N तक हर पूर्णांक क्रम में छापें। N = 0 हो तो कुछ न छापें।
जाँचक संपादक के वर्तमान प्रोग्राम को हर 3 मामले के लिए नई मशीन में चलाता है। वह इनपुट और मेमोरी खुद देता है; प्रयोगशाला का वर्तमान आउटपुट और मेमोरी परिणाम तय नहीं करते।
INPUT
COPY R0 R2
LOAD 1 R1
LOOP R2
#
RETURN
HALTसंकेत चाहिए?
गिनती R2 और बदलता काउंटर R1 में रखें।
हल किया समाधान दिखाएँ
प्रोग्राम पढ़ें, हर निर्देश का असर अनुमान करें, फिर प्रयोगशाला में एक-एक कदम चलाएँ।
INPUT
COPY R0 R2
LOAD 1 R1
LOOP R2
LOAD R1
PRINT
ADD 1
COPY R0 R1
RETURN
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 लेती है। इस ब्राउज़र में रहती है और सर्वर पर नहीं जाती।