← सभी पाठ

मशीन से मिलें · 30 में पाठ 3 · लगभग 7 मिनट

प्रोग्राम काउंटर का अनुसरण

निष्पादन क्रम पढ़ें और स्रोत पंक्तियों को निर्देश पतों से अलग समझें।

01 / समझाएँ

विचार समझें

CPU प्रोग्राम के क्रम का अनुसरण करता है, स्क्रीन पर मान की स्थिति का नहीं। टिप्पणी किसी व्यक्ति को आपका इरादा बताती है; वह निर्देश नहीं बनाती। NOP रजिस्टर, फ्लैग और आउटपुट को बनाए रखते हुए PC आगे बढ़ाता है।

निष्पादन रिकॉर्ड हर निर्देश के पहले और बाद की स्थिति रखता है। पिछला कदम उस पुरानी स्थिति को बहाल करता है ताकि आप गलती जाँचकर फिर चला सकें। ब्रेकपॉइंट अपने निर्देश से पहले रोकता है; एक कदम चलाने पर वह निर्देश स्पष्ट रूप से निष्पादित होता है।

02 / आज़माएँ

होते हुए देखें

दूसरे LOAD पर ब्रेकपॉइंट लगाएँ। चलाएँ, एक कदम पीछे जाएँ और रिकॉर्ड को स्रोत की चिह्नित पंक्ति से मिलाएँ।

#
LOAD 7
NOP
PRINT

LOAD 9
PRINT
HALT

एक समय में एक निर्देश के लिए एक कदम लें। उदाहरण बदलकर फिर चला सकते हैं।

03 / चुनौती

इसे काम करने दें

पहले 7 और फिर 9 छापें, हर संख्या ठीक एक बार। 7 लोड करने और उसे छापने के बीच NOP रखें।

जाँचक संपादक के वर्तमान प्रोग्राम को हर 1 मामले के लिए नई मशीन में चलाता है। वह इनपुट और मेमोरी खुद देता है; प्रयोगशाला का वर्तमान आउटपुट और मेमोरी परिणाम तय नहीं करते।

LOAD 7
NOP
#
HALT
संकेत चाहिए?

PRINT R0 नहीं बदलता; अगला मान लोड करने से वह बदलता है।

हल किया समाधान दिखाएँ

प्रोग्राम पढ़ें, हर निर्देश का असर अनुमान करें, फिर प्रयोगशाला में एक-एक कदम चलाएँ।

LOAD 7
NOP
PRINT
LOAD 9
PRINT
HALT

इमोजी CPU प्रयोगशाला

तैयार · 0 चक्र

इमोजी प्रोग्राम

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
    प्रोग्राम काउंटर (PC)
    0
    स्टैक संकेतक (SP)
    255
    फ्लैग
    शून्य: निष्क्रिय · ऋणात्मक: निष्क्रिय · ओवरफ़्लो: निष्क्रिय
    विलंब अनुरोध
    0 ms
    स्टैक और लूप फ़्रेम

    SP = 255 − डेटा गहराई − कॉल गहराई। स्टैक मेमोरी से अलग है।

    डेटा स्टैक (नीचे → ऊपर)

    खाली

    कॉल वापसी पते (नीचे → ऊपर)

    खाली

    लूप फ़्रेम

    खाली

    आउटपुट और इनपुट

    आउटपुट देखने के लिए PRINT चलाएँ।

    कतार का इनपुट: खाली

    मेमोरी · 256 बाइट · 0 गैर-शून्य

    हर खाना पता:मान दिखाता है। R = इस कदम में पढ़ा; W = इस कदम में लिखा। जाँचने या निष्पादन से पहले मान रखने के लिए खाना चुनें। तीर कुंजियों से चलें, पंक्ति के लिए Home/End और पूरी मेमोरी के लिए Ctrl/⌘ + Home/End लें।

    मेमोरी मान रखने से पहले रीसेट करें। संग्रहित मान 0–255 में लपेटते हैं।
    निष्पादन रिकॉर्ड · 0 प्रविष्टियाँ

    हाल की प्रविष्टियाँ नीचे हैं। अलग पूर्ण पहले/बाद की स्थिति के लिए कोई भी शून्य-आधारित क्रमांक जाँचें।

    अपनी चुनौती जाँचें

    जब चाहें जाँच सकते हैं। पूर्णता दर्ज करने के लिए हर मामला पास हो।

    प्रगति केवल localStorage लेती है। इस ब्राउज़र में रहती है और सर्वर पर नहीं जाती।