Écrivez ou ouvrez un programme
Partez d’un exemple, tapez votre propre assembleur ou ouvrez un fichier .s. Placez les données sous .data et le code sous .text.
Tapez de l’assembleur RV32IM avec étiquettes et pseudo-instructions, puis exécutez-le à pleine vitesse ou instruction par instruction.
Posez des points d’arrêt, revenez en arrière et suivez les registres, la mémoire, le code machine et la console pendant l’exécution.
Chargement du simulateur RISC-V…
Partez d’un exemple, tapez votre propre assembleur ou ouvrez un fichier .s. Placez les données sous .data et le code sous .text.
Appuyez sur Exécuter pour aller à pleine vitesse, ou sur Pas pour exécuter une instruction et voir quels registres et quelle mémoire ont changé. Cliquez à côté d’un numéro de ligne pour poser un point d’arrêt.
Les sorties et saisies se font dans la console. Vérifiez registres et mémoire, revenez en arrière pour trouver où ça a dérapé, et copiez le code machine en hex.
Un pas de trop ? Pas en arrière annule les dernières instructions, registres, mémoire et sortie compris, pour regarder à nouveau sans tout relancer depuis le début.
call écrase ra. Une fonction qui en appelle une autre doit d’abord sauvegarder ra sur la pile puis le restaurer avant ret, comme dans l’exemple de la factorielle.
L’onglet Code machine compte combien de fois chaque instruction s’est exécutée. Un corps de boucle exécuté une fois de trop ou jamais pointe directement vers un branchement erroné.
Besoin d’une illustration de votre conception de processeur ou d’un clip pour votre cours ? Créez-le avec WaveSpeed AI.
Créez des illustrations façon schéma et des couvertures pour vos slides et rapports de TP.
Transformez une idée en court clip explicatif pour votre classe.
Transformez le croquis d’une carte ou d’un boîtier de puce en modèle 3D.
$1 de crédits gratuits pour les nouveaux comptes éligibles. Sans carte bancaire. Les générateurs ont leurs propres exigences de compte et de crédits. Ici, Simulateur RISC-V est gratuit.
Oui. Ce simulateur RISC-V en ligne est gratuit, sans compte, sans limite d’exécutions et sans rien à installer.
Le jeu d’entiers de base 32 bits (RV32I), l’extension M pour la multiplication, la division et le reste, et la lecture des compteurs cycle, time et instret — le jeu d’instructions de base enseigné dans les cours d’architecture des ordinateurs et d’assembleur.
La plupart, oui. Le code commence à 0x00400000 et les données à 0x10010000, et les appels système utilisent les mêmes numéros (a7 = 1 affiche un entier, 4 affiche une chaîne, 5 lit un entier, 10 quitte, etc.) que les simulateurs pédagogiques courants. L’onglet Référence les liste tous.
Placez le numéro d’appel dans a7 et l’argument dans a0, puis exécutez ecall. Quand le programme lit, la console demande une saisie : tapez-la et appuyez sur Enter. Vous pouvez aussi taper à l’avance, avant que le programme ne la demande.
Le nombre d’instructions est exact. Le nombre de cycles est une estimation pour un cœur simple in-order : 1 cycle par instruction, 2 par chargement, 3 par saut ou branchement pris, 3 par multiplication et 33 par division.
Oui. L’onglet Code machine affiche l’adresse, le mot hexadécimal et la forme décodée de chaque instruction. Copiez-le en hex, un mot par ligne, ou téléchargez un fichier .hex ou .bin brut.
Les mots doivent être lus et écrits à des adresses multiples de 4, et les demi-mots à des multiples de 2. Placez .align 2 avant les données en mots, ou vérifiez l’adresse calculée. L’erreur indique l’adresse et la ligne.
Oui. Pas en arrière annule jusqu’aux 4 096 dernières instructions, registres, mémoire et sortie compris, pour trouver un bug sans tout relancer depuis le début.
Non. L’assemblage et l’exécution ont lieu dans votre navigateur, et votre programme est enregistré dans le stockage de ce navigateur pour être là la prochaine fois.
Gratuit, privé et prêt quand vous l’êtes.