← सभी पाठ

बिट और निरूपण · 30 में पाठ 22 · लगभग 12 मिनट

बिट मास्क और फ्लैग

AND से बिट चुनें और OR से लगाएँ।

01 / समझाएँ

विचार समझें

आठ बिट आठ स्वतंत्र हाँ/नहीं सेटिंग रख सकते हैं। बाइनरी में 5, 00000101 है, इसलिए AND 5 बिट 0 और 2 रखता है और बाकी साफ़ करता है। OR 2 अन्य बिट मिटाए बिना बिट 1 लगाता है।

बिट निर्देश चिह्न वाले 32-बिट मान लेते हैं, जबकि मेमोरी आठ-बिट बाइट रखती है। हमारे छोटे गैर-ऋणात्मक उदाहरण बाइट सीमा में हैं। शून्य फ्लैग बताता है कि चुने हुए सभी बिट साफ़ हैं या नहीं।

02 / आज़माएँ

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

13 बाइनरी 1101 है। बिट 0 और 2 चुनने पर 5, बिट 1 लगाने पर 7 मिलता है।

LOAD 13
AND 5
PRINT
OR 2
PRINT
HALT

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

03 / चुनौती

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

0 से 255 तक बाइट पढ़ें। AND 5 से केवल बिट 0 और 2 को संख्यात्मक मास्क के रूप में छापें।

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

INPUT
#
PRINT
HALT
संकेत चाहिए?

AND तभी बिट रखता है जब दोनों मानों में वहाँ एक हो।

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

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

INPUT
AND 5
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 लेती है। इस ब्राउज़र में रहती है और सर्वर पर नहीं जाती।