10. शर्तों का तर्क: निर्णय लेना
मानों की तुलना करें और संग्रहित फ्लैग के अनुसार रास्ता चुनें।
1. अनुमान और निष्पादन क्रम
प्रयोग प्रोग्राम चलाने से पहले आउटपुट अनुमान करें और पहले तीन चलाए निर्देशों का क्रम लिखें। आवश्यक रजिस्टर, फ्लैग या मेमोरी दर्ज करें। फिर एक-एक कदम चलाकर मिलाएँ।
LOAD 7 CMP 7 JUMP_IF_ZERO same LOAD 0 JUMP show same: LOAD 1 show: PRINT HALT
इनपुट कतार में रखें: कोई नहीं
मेमोरी शुरू करें: शुरू में सभी बाइट शून्य
प्रयोग अनुमान कुंजी
आउटपुट: 1
| निर्देश | पहले PC | बाद में PC | पहले R0 | बाद में R0 | संबंधित स्थिति | आउटपुट |
|---|---|---|---|---|---|---|
| LOAD | 0 | 1 | 0 | 7 | {"registers":[7,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]} | कोई नहीं |
| CMP | 1 | 2 | 7 | 7 | {"registers":[7,0,0,0,0,0,0,0],"flags":{"zero":true,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]} | कोई नहीं |
| JUMP_IF_ZERO | 2 | 5 | 7 | 7 | {"registers":[7,0,0,0,0,0,0,0],"flags":{"zero":true,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]} | कोई नहीं |
2. बनाएँ और जाँचें
दो पूर्णांक पढ़ें। बराबर हों तो 1, अन्यथा 0 छापें। बराबर और अलग दोनों इनपुट संभालें।
ज़रूरी निर्देश प्रकार: INPUT, CMP, JUMP_IF_ZERO
चुनौती समाधान उदाहरण
INPUT COPY R0 R1 INPUT CMP R1 JUMP_IF_ZERO same LOAD 0 JUMP show same: LOAD 1 show: PRINT HALT
वास्तविक जाँच मामले
मामला 1
- इनपुट
5, 5- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
1
मामला 2
- इनपुट
2, 3- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
0
मामला 3
- इनपुट
-2, -2- शुरुआती मेमोरी
शुरू में सभी बाइट शून्य- अपेक्षित आउटपुट
1
3. मशीन समझाएँ
R0 गैर-शून्य होते हुए Z=true हो सकता है?
तर्क और शिक्षण टिप्पणी
हाँ: R0=7 पर CMP 7 अंतर से शून्य फ्लैग लगाता है; R0 में 7 रहता है।