Napisz lub otwórz program
Zacznij od przykładu, wpisz własny kod w asemblerze lub otwórz plik .s. Dane umieszczaj pod .data, a kod pod .text.
Wpisz kod w asemblerze RV32IM z etykietami i pseudoinstrukcjami, a potem uruchom go z pełną szybkością lub po jednej instrukcji.
Ustawiaj punkty przerwania, cofaj się o krok i obserwuj rejestry, pamięć, kod maszynowy i konsolę podczas działania programu.
Ładowanie symulatora RISC-V…
Zacznij od przykładu, wpisz własny kod w asemblerze lub otwórz plik .s. Dane umieszczaj pod .data, a kod pod .text.
Naciśnij Uruchom, aby działać z pełną szybkością, lub Krok, aby wykonać jedną instrukcję i zobaczyć, które rejestry i komórki pamięci się zmieniły. Kliknij obok numeru linii, aby ustawić punkt przerwania.
Wyjście i wejście odbywają się w konsoli. Sprawdź rejestry i pamięć, cofnij się, aby znaleźć miejsce błędu, i skopiuj kod maszynowy jako hex.
Za daleko o jeden krok? Krok wstecz cofa ostatnie instrukcje — łącznie z rejestrami, pamięcią i wyjściem — więc możesz spojrzeć jeszcze raz bez uruchamiania od początku.
call nadpisuje ra. Funkcja, która wywołuje inną, musi najpierw zapisać ra na stosie i odtworzyć je przed ret, jak w przykładzie z silnią.
Karta kodu maszynowego liczy, ile razy wykonała się każda instrukcja. Ciało pętli wykonane o jeden raz za dużo lub wcale wskazuje prosto na błędny skok.
Potrzebujesz ilustracji projektu procesora lub klipu do kursu? Stwórz je z WaveSpeed AI.
Twórz ilustracje w stylu diagramów i okładki do slajdów i sprawozdań z laboratoriów.
Zamień pomysł w krótki klip objaśniający dla swojej grupy.
Zamień szkic płytki lub obudowy układu scalonego w model 3D.
$1 w darmowych kredytach dla kwalifikujących się nowych kont. Bez karty. Generatory mają osobne wymagania dotyczące konta i kredytów. Symulator RISC-V jest darmowy.
Tak. Ten symulator RISC-V online jest darmowy — bez konta, bez limitu uruchomień i bez instalacji.
32-bitowy bazowy zestaw całkowitoliczbowy (RV32I), rozszerzenie M do mnożenia, dzielenia i reszty oraz odczyty liczników cycle, time i instret — podstawowy zestaw instrukcji uczony na kursach architektury komputerów i asemblera.
Większość tak. Kod zaczyna się pod 0x00400000, a dane pod 0x10010000, a wywołania systemowe używają tych samych numerów (a7 = 1 wypisz liczbę, 4 wypisz ciąg znaków, 5 wczytaj liczbę, 10 zakończ itd.) co popularne symulatory dydaktyczne. Karta Ściąga wymienia je wszystkie.
Umieść numer wywołania w a7, a argument w a0, a potem wykonaj ecall. Gdy program czyta, konsola prosi o wejście: wpisz je i naciśnij Enter. Możesz też pisać z wyprzedzeniem, zanim program o to poprosi.
Liczba instrukcji jest dokładna. Liczba cykli to szacunek dla prostego rdzenia in-order: 1 cykl na instrukcję, 2 na odczyt z pamięci, 3 na skok lub wykonany skok warunkowy, 3 na mnożenie i 33 na dzielenie.
Tak. Karta Kod maszynowy pokazuje adres, słowo hex i zdekodowaną postać każdej instrukcji. Skopiuj go jako hex, jedno słowo na linię, lub pobierz plik .hex albo surowy .bin.
Słowa muszą być odczytywane i zapisywane pod adresami będącymi wielokrotnością 4, a półsłowa wielokrotnością 2. Umieść .align 2 przed danymi typu word lub sprawdź obliczony adres. Komunikat błędu podaje adres i linię.
Tak. Krok wstecz cofa do 4096 ostatnich instrukcji — łącznie z rejestrami, pamięcią i wyjściem — więc znajdziesz błąd bez uruchamiania od początku.
Nie. Asemblacja i uruchamianie odbywają się w przeglądarce, a program jest zapisywany w jej pamięci, więc będzie tu następnym razem.
Za darmo, prywatnie i gotowy, kiedy Ty jesteś.