Programm schreiben oder öffnen
Beginnen Sie mit einem Beispiel, tippen Sie Ihren eigenen Assembler ein oder öffnen Sie eine .s-Datei. Daten gehören unter .data, Code unter .text.
Tippen Sie RV32IM-Assembler mit Labels und Pseudobefehlen ein und führen Sie ihn mit voller Geschwindigkeit oder Befehl für Befehl aus.
Setzen Sie Breakpoints, gehen Sie Schritte zurück und beobachten Sie Register, Speicher, Maschinencode und Konsole, während das Programm läuft.
RISC-V-Simulator wird geladen…
Beginnen Sie mit einem Beispiel, tippen Sie Ihren eigenen Assembler ein oder öffnen Sie eine .s-Datei. Daten gehören unter .data, Code unter .text.
Klicken Sie auf „Ausführen“ für volle Geschwindigkeit oder auf „Schritt“, um einen Befehl auszuführen und zu sehen, welche Register und Speicherstellen sich geändert haben. Klicken Sie neben eine Zeilennummer, um einen Breakpoint zu setzen.
Ein- und Ausgabe erfolgen in der Konsole. Prüfen Sie Register und Speicher, gehen Sie Schritte zurück, um den Fehler zu finden, und kopieren Sie den Maschinencode als Hex.
Einen Schritt zu weit gegangen? „Schritt zurück“ macht die letzten Befehle rückgängig – einschließlich Register, Speicher und Ausgabe –, sodass Sie erneut hinsehen können, ohne von vorn zu starten.
call überschreibt ra. Eine Funktion, die eine andere aufruft, muss ra zuerst auf dem Stack sichern und vor ret wiederherstellen, wie im Fakultätsbeispiel.
Der Tab „Maschinencode“ zählt, wie oft jeder Befehl ausgeführt wurde. Ein Schleifenrumpf, der einmal zu oft oder nie lief, zeigt direkt auf eine falsche Verzweigung.
Sie brauchen eine Illustration Ihres Prozessordesigns oder einen Clip für Ihren Kurs? Erstellen Sie ihn mit WaveSpeed AI.
Erstellen Sie diagrammartige Illustrationen und Titelbilder für Folien und Laborberichte.
Machen Sie aus einer Idee einen kurzen Erklärclip für Ihre Klasse.
Machen Sie aus der Skizze einer Platine oder eines Chipgehäuses ein 3D-Modell.
$1 Gratis-Guthaben für berechtigte neue Konten. Keine Karte nötig. Für die Generatoren gelten eigene Konto- und Credit-Anforderungen. RISC-V-Simulator ist kostenlos.
Ja. Dieser Online-RISC-V-Simulator ist kostenlos – ohne Konto, ohne Begrenzung der Durchläufe und ohne Installation.
Der 32-Bit-Basis-Integer-Befehlssatz (RV32I), die M-Erweiterung für Multiplikation, Division und Rest sowie das Lesen der Zähler cycle, time und instret – der Kernbefehlssatz, der in Rechnerarchitektur- und Assembler-Kursen gelehrt wird.
Die meisten schon. Der Code beginnt bei 0x00400000 und die Daten bei 0x10010000, und die Systemaufrufe verwenden dieselben Nummern (a7 = 1 Ganzzahl ausgeben, 4 String ausgeben, 5 Ganzzahl einlesen, 10 Beenden usw.) wie die gängigen Lehrsimulatoren. Der Tab „Referenz“ listet sie alle auf.
Legen Sie die Aufrufnummer in a7 und das Argument in a0 ab und führen Sie dann ecall aus. Wenn das Programm liest, fragt die Konsole nach einer Eingabe: Tippen Sie sie ein und drücken Sie Enter. Sie können auch schon vorab tippen, bevor das Programm fragt.
Die Befehlsanzahl ist exakt. Die Zyklenzahl ist eine Schätzung für einen einfachen In-Order-Kern: 1 Zyklus pro Befehl, 2 pro Load, 3 pro Sprung oder genommener Verzweigung, 3 pro Multiplikation und 33 pro Division.
Ja. Der Tab „Maschinencode“ zeigt zu jedem Befehl Adresse, Hex-Wort und dekodierte Form. Kopieren Sie ihn als Hex, ein Wort pro Zeile, oder laden Sie eine .hex- oder rohe .bin-Datei herunter.
Wörter müssen an Adressen gelesen und geschrieben werden, die ein Vielfaches von 4 sind, Halbwörter an einem Vielfachen von 2. Setzen Sie .align 2 vor Wortdaten oder prüfen Sie die berechnete Adresse. Die Fehlermeldung nennt Adresse und Zeile.
Ja. „Schritt zurück“ macht bis zu den letzten 4.096 Befehlen rückgängig – einschließlich Register, Speicher und Ausgabe –, sodass Sie einen Fehler finden, ohne von vorn zu starten.
Nein. Assemblieren und Ausführen finden in Ihrem Browser statt, und Ihr Programm wird im Speicher dieses Browsers gesichert, sodass es beim nächsten Mal noch da ist.
Kostenlos, privat und jederzeit bereit.