प्रोग्राम लिखें या खोलें
किसी उदाहरण से शुरू करें, अपनी असेंबली टाइप करें या कोई .s फ़ाइल खोलें। डेटा .data के नीचे और कोड .text के नीचे रखें।
लेबल और स्यूडो-इंस्ट्रक्शन के साथ RV32IM असेंबली टाइप करें, फिर उसे पूरी स्पीड पर या एक-एक इंस्ट्रक्शन करके चलाएँ।
ब्रेकपॉइंट लगाएँ, पीछे स्टेप करें, और प्रोग्राम चलते समय रजिस्टर, मेमोरी, मशीन कोड और कंसोल देखें।
RISC-V सिम्युलेटर लोड हो रहा है…
किसी उदाहरण से शुरू करें, अपनी असेंबली टाइप करें या कोई .s फ़ाइल खोलें। डेटा .data के नीचे और कोड .text के नीचे रखें।
पूरी स्पीड के लिए चलाएँ दबाएँ, या एक इंस्ट्रक्शन चलाकर यह देखने के लिए कि कौन-से रजिस्टर और मेमोरी बदले, स्टेप दबाएँ। ब्रेकपॉइंट लगाने के लिए लाइन नंबर के बगल में क्लिक करें।
आउटपुट और इनपुट कंसोल में होते हैं। रजिस्टर और मेमोरी जाँचें, गड़बड़ी कहाँ हुई यह ढूँढने के लिए पीछे स्टेप करें, और मशीन कोड हेक्स के रूप में कॉपी करें।
एक स्टेप ज़्यादा चले गए? पीछे स्टेप आख़िरी इंस्ट्रक्शन को पूर्ववत करता है, रजिस्टर, मेमोरी और आउटपुट समेत, ताकि आप शुरू से चलाए बिना फिर देख सकें।
call, ra को ओवरराइट करता है। जो फ़ंक्शन दूसरे को कॉल करता है, उसे पहले ra को स्टैक पर सेव करना और ret से पहले वापस लाना होता है, जैसा फ़ैक्टोरियल उदाहरण में है।
मशीन कोड टैब गिनता है कि हर इंस्ट्रक्शन कितनी बार चला। एक बार ज़्यादा चला या कभी न चला लूप बॉडी सीधे ग़लत ब्रांच की ओर इशारा करता है।
अपने प्रोसेसर डिज़ाइन का इलस्ट्रेशन या अपने कोर्स के लिए क्लिप चाहिए? WaveSpeed AI से बनाएँ।
स्लाइड और लैब रिपोर्ट के लिए डायग्राम-स्टाइल इलस्ट्रेशन और कवर बनाएँ।
अपनी क्लास के लिए किसी आइडिया को छोटी एक्सप्लेनर क्लिप में बदलें।
किसी बोर्ड या चिप पैकेज के स्केच को 3D मॉडल में बदलें।
योग्य नए अकाउंट के लिए $1 के फ़्री क्रेडिट। कार्ड की ज़रूरत नहीं। जनरेटर के लिए अलग अकाउंट और क्रेडिट की ज़रूरत होती है। RISC-V सिम्युलेटर मुफ़्त है।
हाँ। यह ऑनलाइन RISC-V सिम्युलेटर मुफ़्त है — न अकाउंट, न रन की कोई सीमा, न कुछ इंस्टॉल करना।
32-बिट बेस इंटीजर सेट (RV32I), गुणा, भाग और शेष के लिए M एक्सटेंशन, और cycle, time और instret काउंटर पढ़ना — कंप्यूटर आर्किटेक्चर और असेंबली कोर्स में पढ़ाया जाने वाला मुख्य इंस्ट्रक्शन सेट।
ज़्यादातर चलेंगे। कोड 0x00400000 से और डेटा 0x10010000 से शुरू होता है, और सिस्टम कॉल वही नंबर इस्तेमाल करते हैं (a7 = 1 इंटीजर प्रिंट, 4 स्ट्रिंग प्रिंट, 5 इंटीजर पढ़ें, 10 exit वगैरह) जो आम शिक्षण सिम्युलेटर करते हैं। संदर्भ टैब में सभी की सूची है।
कॉल नंबर a7 में और आर्ग्युमेंट a0 में रखें, फिर ecall चलाएँ। जब प्रोग्राम पढ़ता है, कंसोल इनपुट माँगता है: उसे टाइप करें और Enter दबाएँ। आप प्रोग्राम के माँगने से पहले भी टाइप कर सकते हैं।
इंस्ट्रक्शन गिनती सटीक है। साइकिल गिनती एक सरल in-order कोर के लिए अनुमान है: हर इंस्ट्रक्शन 1 साइकिल, हर लोड 2, हर जंप या लिए गए ब्रांच 3, हर गुणा 3 और हर भाग 33।
हाँ। मशीन कोड टैब हर इंस्ट्रक्शन का पता, हेक्स वर्ड और डिकोड किया गया रूप दिखाता है। उसे हेक्स के रूप में कॉपी करें, हर लाइन में एक वर्ड, या .hex या रॉ .bin फ़ाइल डाउनलोड करें।
वर्ड 4 के गुणज वाले पतों पर और हाफ़वर्ड 2 के गुणज पर पढ़े और लिखे जाने चाहिए। वर्ड डेटा से पहले .align 2 लगाएँ, या अपना निकाला गया पता जाँचें। एरर पता और लाइन बताता है।
हाँ। पीछे स्टेप आख़िरी 4,096 इंस्ट्रक्शन तक पूर्ववत करता है, रजिस्टर, मेमोरी और आउटपुट समेत, ताकि आप शुरू से चलाए बिना बग ढूँढ सकें।
नहीं। असेंबल करना और चलाना आपके ब्राउज़र में होता है, और आपका प्रोग्राम इस ब्राउज़र के स्टोरेज में सेव होता है ताकि अगली बार भी यहीं मिले।
मुफ़्त, निजी और जब आप चाहें तब तैयार।