बाइट मेमोरी · 30 में पाठ 9 · लगभग 9 मिनट
बाइट और सीमाएँ
देखें कि मेमोरी में मान क्यों लपेटते हैं, रजिस्टरों में नहीं।
01 / समझाएँ
विचार समझें
बाइट के 256 संभावित मान हैं, 0 से 255। STORE किसी संख्या के निचले आठ बिट रखता है: 256 से 0, −1 से 255 और 511 से 255 बनता है। यह लिखित value & 255 नियम है।
रजिस्टर सुरक्षित पूर्णांक गणित रखते हैं। LOAD 256 अभी भी R0 में 256 रखता है; केवल बाइट मेमोरी में रखने पर उसका रूप बदलता है। ओवरफ़्लो फ्लैग चिह्न वाली 32-बिट सीमा बताता है, लेकिन गणित अपने आप नहीं लपेटता।
02 / आज़माएँ
होते हुए देखें
256, 0, 255 अपेक्षित हैं। पता 255 मान्य है; 256 नहीं।
LOAD 256
PRINT
STORE 255
LOAD [255]
PRINT
LOAD -1
STORE 255
LOAD [255]
PRINT
HALTएक समय में एक निर्देश के लिए एक कदम लें। उदाहरण बदलकर फिर चला सकते हैं।
03 / चुनौती
इसे काम करने दें
पूर्णांक पढ़ें, पता 255 पर रखें, बनी बाइट वापस पढ़ें और छापें। उसकी जगह निश्चित उत्तर की गणना न करें।
जाँचक संपादक के वर्तमान प्रोग्राम को हर 4 मामले के लिए नई मशीन में चलाता है। वह इनपुट और मेमोरी खुद देता है; प्रयोगशाला का वर्तमान आउटपुट और मेमोरी परिणाम तय नहीं करते।
INPUT
#
HALTसंकेत चाहिए?
CPU का STORE निर्देश पहले से बाइट परिवर्तन करता है।
हल किया समाधान दिखाएँ
प्रोग्राम पढ़ें, हर निर्देश का असर अनुमान करें, फिर प्रयोगशाला में एक-एक कदम चलाएँ।
INPUT
STORE 255
LOAD [255]
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 लेती है। इस ब्राउज़र में रहती है और सर्वर पर नहीं जाती।