28. छोटा लक्ष्य खेल
संग्रहित स्थिति और स्कोर वाला तीन-चक्र खेल बनाएँ।
यह पाठ खोलें →
1. अनुमान और निष्पादन क्रम
प्रयोग प्रोग्राम चलाने से पहले आउटपुट अनुमान करें और पहले तीन चलाए निर्देशों का क्रम लिखें। आवश्यक रजिस्टर, फ्लैग या मेमोरी दर्ज करें। फिर एक-एक कदम चलाकर मिलाएँ।
STORE 5 200
LOAD [200] R1
LOAD 0 R2
LOOP 3
INPUT
CMP R1
JUMP_IF_ZERO hit
JUMP next
hit: LOAD R2
ADD 1
COPY R0 R2
next: NOP
RETURN
LOAD R2
STORE 201
PRINT
HALT
इनपुट कतार में रखें: 5, 2, 5
मेमोरी शुरू करें: 200: 5
प्रयोग अनुमान कुंजी
आउटपुट: 2
2. बनाएँ और जाँचें
मेमोरी 200 में लक्ष्य बाइट है। ठीक तीन अनुमान पढ़ें। लक्ष्य से बराबर अनुमानों की संख्या गिनें, स्कोर मेमोरी 201 में रखें और एक बार छापें।
ज़रूरी निर्देश प्रकार: INPUT, CMP, LOOP, STORE, JUMP_IF_ZERO
चुनौती समाधान उदाहरण
LOAD [200] R1
LOAD 0 R2
LOOP 3
INPUT
CMP R1
JUMP_IF_ZERO hit
JUMP next
hit: LOAD R2
ADD 1
COPY R0 R2
next: NOP
RETURN
LOAD R2
STORE 201
PRINT
HALT
वास्तविक जाँच मामले
मामला 1
- इनपुट
5, 2, 5- शुरुआती मेमोरी
200: 5- अपेक्षित आउटपुट
2- अपेक्षित अंतिम मेमोरी
200: 5, 201: 2- ज़रूरी मेमोरी पढ़ाई
200
मामला 2
- इनपुट
1, 2, 3- शुरुआती मेमोरी
200: 9- अपेक्षित आउटपुट
0- अपेक्षित अंतिम मेमोरी
200: 9, 201: 0- ज़रूरी मेमोरी पढ़ाई
200
मामला 3
- इनपुट
0, 0, 0- शुरुआती मेमोरी
200: 0- अपेक्षित आउटपुट
3- अपेक्षित अंतिम मेमोरी
200: 0, 201: 3- ज़रूरी मेमोरी पढ़ाई
200
मामला 4
- इनपुट
17, 1, 2- शुरुआती मेमोरी
200: 17- अपेक्षित आउटपुट
1- अपेक्षित अंतिम मेमोरी
200: 17, 201: 1- ज़रूरी मेमोरी पढ़ाई
200
3. मशीन समझाएँ
सही और गलत अनुमान पर कौन-सी स्थिति बदलती है?
तर्क और शिक्षण टिप्पणी
स्कोर केवल बराबरी पर बढ़ता है; लक्ष्य संग्रहित इनपुट/नियम डेटा रहता है। तीन अनुमान संख्यात्मक स्कोर देते हैं।
29. स्टैक से चलने वाला बफ़र उपकरण
इनपुट, लूप, स्टैक और क्रमांक वाली मेमोरी जोड़ें।
यह पाठ खोलें →
1. अनुमान और निष्पादन क्रम
प्रयोग प्रोग्राम चलाने से पहले आउटपुट अनुमान करें और पहले तीन चलाए निर्देशों का क्रम लिखें। आवश्यक रजिस्टर, फ्लैग या मेमोरी दर्ज करें। फिर एक-एक कदम चलाकर मिलाएँ।
LOAD 3 R3
LOAD 10
PUSH
LOAD 20
PUSH
LOAD 30
PUSH
LOAD 0 R1
LOOP R3
POP
STORE R1
PRINT
LOAD R1
ADD 1
COPY R0 R1
RETURN
HALT
इनपुट कतार में रखें: कोई नहीं
मेमोरी शुरू करें: शुरू में सभी बाइट शून्य
प्रयोग अनुमान कुंजी
आउटपुट: 30, 20, 10
2. बनाएँ और जाँचें
N (0–5), फिर ठीक N बाइट पढ़ें। डेटा स्टैक से उन्हें उलटें। उलटा क्रम छापें और मेमोरी पता 0 से रखें।
ज़रूरी निर्देश प्रकार: INPUT, LOOP, PUSH, POP, STORE
चुनौती समाधान उदाहरण
INPUT
COPY R0 R3
LOOP R3
INPUT
PUSH
RETURN
LOAD 0 R1
LOOP R3
POP
STORE R1
PRINT
LOAD R1
ADD 1
COPY R0 R1
RETURN
HALT
वास्तविक जाँच मामले
मामला 1
- इनपुट
0- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
कोई नहीं- अपेक्षित अंतिम मेमोरी
0: 0
मामला 2
- इनपुट
1, 7- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
7- अपेक्षित अंतिम मेमोरी
0: 7
मामला 3
- इनपुट
4, 1, 2, 3, 4- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
4, 3, 2, 1- अपेक्षित अंतिम मेमोरी
0: 4, 1: 3, 2: 2, 3: 1
मामला 4
- इनपुट
3, 0, 255, 8- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
8, 255, 0- अपेक्षित अंतिम मेमोरी
0: 8, 1: 255, 2: 0
3. मशीन समझाएँ
दो चरण क्यों, और N=0 क्या करे?
तर्क और शिक्षण टिप्पणी
पहले पढ़ें/PUSH, फिर उलटे POP/लिखें/छापें; शून्य दोहराव कोई आउटपुट या अनचाही लिखाई नहीं करता।
30. आपका अपना छोटा ऑपरेटिंग सिस्टम
कतार के काम सेवाओं को भेजें और परिणाम दर्ज करें।
यह पाठ खोलें →
1. अनुमान और निष्पादन क्रम
प्रयोग प्रोग्राम चलाने से पहले आउटपुट अनुमान करें और पहले तीन चलाए निर्देशों का क्रम लिखें। आवश्यक रजिस्टर, फ्लैग या मेमोरी दर्ज करें। फिर एक-एक कदम चलाकर मिलाएँ।
LOAD 4
CALL double
STORE 64
PRINT
LOAD 3
CALL square
STORE 65
PRINT
HALT
double: MUL 2
RETURN
square: MUL R0
RETURN
इनपुट कतार में रखें: कोई नहीं
मेमोरी शुरू करें: शुरू में सभी बाइट शून्य
प्रयोग अनुमान कुंजी
आउटपुट: 8, 9
2. बनाएँ और जाँचें
N (0–3), फिर N (क्रिया, मान) जोड़े पढ़ें। क्रिया 0 दुगना, 1 वर्ग और 2 एक जोड़े। CALL सबरूटीन से चयन करें। हर पूरा परिणाम छापें और उसकी बाइट काम के क्रम में पते 64, 65, … पर रखें।
ज़रूरी निर्देश प्रकार: INPUT, LOOP, CALL, CMP, STORE, RETURN
चुनौती समाधान उदाहरण
INPUT
COPY R0 R3
LOAD 64 R2
LOOP R3
INPUT
COPY R0 R4
INPUT
COPY R0 R1
LOAD R4
CMP 0
JUMP_IF_ZERO doubleJob
CMP 1
JUMP_IF_ZERO squareJob
LOAD R1
CALL increment
JUMP finish
doubleJob: LOAD R1
CALL double
JUMP finish
squareJob: LOAD R1
CALL square
finish: STORE R2
PRINT
LOAD R2
ADD 1
COPY R0 R2
RETURN
HALT
double: MUL 2
RETURN
square: MUL R0
RETURN
increment: ADD 1
RETURN
वास्तविक जाँच मामले
मामला 1
- इनपुट
3, 0, 4, 1, 3, 2, 9- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
8, 9, 10- अपेक्षित अंतिम मेमोरी
64: 8, 65: 9, 66: 10
मामला 2
- इनपुट
2, 1, -2, 0, 0- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
4, 0- अपेक्षित अंतिम मेमोरी
64: 4, 65: 0
मामला 3
- इनपुट
0- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
कोई नहीं- अपेक्षित अंतिम मेमोरी
64: 0
मामला 4
- इनपुट
3, 2, 255, 0, 130, 1, 16- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
256, 260, 256- अपेक्षित अंतिम मेमोरी
64: 0, 65: 4, 66: 0
3. मशीन समझाएँ
आउटपुट 260 के साथ मेमोरी रिकॉर्ड 4 कैसे है?
तर्क और शिक्षण टिप्पणी
R0 पूरा सुरक्षित पूर्णांक रखता है; STORE निचली बाइट रखता है। सेवा CALL गणना छिपाती है, चयन नियम नहीं।