Scrivi o apri un programma
Parti da un esempio, digita il tuo assembly o apri un file .s. Metti i dati sotto .data e il codice sotto .text.
Digita assembly RV32IM con etichette e pseudo-istruzioni, poi eseguilo a piena velocità o un'istruzione alla volta.
Imposta breakpoint, torna indietro e osserva registri, memoria, codice macchina e console mentre il programma gira.
Caricamento del simulatore RISC-V…
Parti da un esempio, digita il tuo assembly o apri un file .s. Metti i dati sotto .data e il codice sotto .text.
Premi Esegui per andare a piena velocità, oppure Passo per eseguire un'istruzione e vedere quali registri e quale memoria sono cambiati. Fai clic accanto a un numero di riga per impostare un breakpoint.
Output e input avvengono nella console. Controlla registri e memoria, torna indietro per trovare dove qualcosa è andato storto e copia il codice macchina in esadecimale.
Sei andato un passo troppo avanti? Passo indietro annulla le ultime istruzioni, registri, memoria e output compresi, così puoi guardare di nuovo senza ripartire dall'inizio.
call sovrascrive ra. Una funzione che ne chiama un'altra deve prima salvare ra sullo stack e ripristinarlo prima di ret, come nell'esempio del fattoriale.
La scheda del codice macchina conta quante volte è stata eseguita ogni istruzione. Il corpo di un ciclo eseguito una volta di troppo o mai eseguito indica subito un branch sbagliato.
Ti serve un'illustrazione del tuo progetto di processore o una clip per il tuo corso? Creala con WaveSpeed AI.
Crea illustrazioni in stile schema e copertine per slide e relazioni di laboratorio.
Trasforma un'idea in una breve clip esplicativa per la tua classe.
Trasforma lo schizzo di una scheda o di un package di chip in un modello 3D.
$1 in crediti gratuiti per i nuovi account idonei. Nessuna carta richiesta. I generatori hanno requisiti separati di account e crediti. Questo strumento è gratuito: Simulatore RISC-V.
Sì. Questo simulatore RISC-V online è gratuito, senza account, senza limiti di esecuzioni e senza nulla da installare.
Il set di base di interi a 32 bit (RV32I), l'estensione M per moltiplicazione, divisione e resto e la lettura dei contatori cycle, time e instret: il set di istruzioni fondamentale insegnato nei corsi di architettura dei calcolatori e di assembly.
Nella maggior parte dei casi sì. Il codice parte da 0x00400000 e i dati da 0x10010000, e le chiamate di sistema usano gli stessi numeri (a7 = 1 stampa intero, 4 stampa stringa, 5 legge intero, 10 esce e così via) dei simulatori didattici più comuni. La scheda Riferimento le elenca tutte.
Metti il numero della chiamata in a7 e l'argomento in a0, poi esegui ecall. Quando il programma legge, la console chiede l'input: digitalo e premi Enter. Puoi anche digitare in anticipo, prima che il programma lo chieda.
Il conteggio delle istruzioni è esatto. Il conteggio dei cicli è una stima per un core semplice in ordine: 1 ciclo per istruzione, 2 per load, 3 per salto o branch preso, 3 per moltiplicazione e 33 per divisione.
Sì. La scheda Codice macchina mostra indirizzo, parola esadecimale e forma decodificata di ogni istruzione. Copialo in esadecimale, una parola per riga, oppure scarica un file .hex o un .bin grezzo.
Le word devono essere lette e scritte a indirizzi multipli di 4 e le halfword a multipli di 2. Metti .align 2 prima dei dati a word, oppure controlla l'indirizzo che hai calcolato. L'errore indica l'indirizzo e la riga.
Sì. Passo indietro annulla fino alle ultime 4.096 istruzioni, registri, memoria e output compresi, così puoi trovare un bug senza ripartire dall'inizio.
No. Assemblaggio ed esecuzione avvengono nel tuo browser e il programma viene salvato nello spazio di archiviazione di questo browser, così lo ritrovi la volta successiva.
Gratuito, privato e pronto quando lo sei tu.