← सभी पाठ

गणित और इनपुट · 30 में पाठ 5 · लगभग 9 मिनट

भाग और शेषफल

ऋणात्मक मानों सहित नीचे की ओर पूर्णांक भाग और चिह्न वाला शेष समझें।

01 / समझाएँ

विचार समझें

DIV ऋण अनंत की ओर पूर्णांक करता है: 18 को 4 से भाग देने पर 4, जबकि −9 को 4 से भाग देने पर −3 मिलता है। MOD चिह्न वाला शेष देता है: 18 MOD 4 का मान 2 और −9 MOD 4 का मान −1 है। ये मशीन के लिखित नियम हैं, जो ऋणात्मक मानों के लिए अलग हैं।

DIV और MOD दोनों शून्य भाजक स्वीकार नहीं करते। दोनों परिणाम चाहिए तो मूल इनपुट दूसरे रजिस्टर में बचाएँ, क्योंकि हर क्रिया R0 बदलती है।

02 / आज़माएँ

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

पहले −3 फिर −1 अपेक्षित है। 4 की जगह शून्य करके त्रुटि और उसकी स्रोत पंक्ति देखें।

LOAD -9 R1
LOAD R1
DIV 4
PRINT
LOAD R1
MOD 4
PRINT
HALT

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

03 / चुनौती

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

पूर्णांक पढ़ें। पहले 4 से नीचे की ओर पूर्णांक भागफल, फिर 4 से चिह्न वाला शेष छापें। दोनों निकालने तक मूल मान रखें।

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

INPUT
COPY R0 R1
#
HALT
संकेत चाहिए?

LOAD R1 बचाया गया इनपुट R0 में लौटाता है।

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

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

INPUT
COPY R0 R1
DIV 4
PRINT
LOAD R1
MOD 4
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 लेती है। इस ब्राउज़र में रहती है और सर्वर पर नहीं जाती।