Escribe o abre un programa
Empieza con un ejemplo, escribe tu propio ensamblador o abre un archivo .s. Pon los datos bajo .data y el código bajo .text.
Escribe ensamblador RV32IM con etiquetas y pseudoinstrucciones y ejecútalo a toda velocidad o instrucción a instrucción.
Pon puntos de interrupción, retrocede y observa los registros, la memoria, el código máquina y la consola mientras se ejecuta el programa.
Cargando el simulador RISC-V…
Empieza con un ejemplo, escribe tu propio ensamblador o abre un archivo .s. Pon los datos bajo .data y el código bajo .text.
Pulsa Ejecutar para ir a toda velocidad, o Paso para ejecutar una instrucción y ver qué registros y qué memoria cambiaron. Haz clic junto a un número de línea para poner un punto de interrupción.
La salida y la entrada se hacen en la consola. Revisa los registros y la memoria, retrocede para encontrar dónde falló algo y copia el código máquina en hexadecimal.
¿Te pasaste un paso? Paso atrás deshace las últimas instrucciones, incluidos registros, memoria y salida, para que puedas volver a mirar sin ejecutar desde el principio.
call sobrescribe ra. Una función que llama a otra debe guardar primero ra en la pila y restaurarlo antes de ret, como en el ejemplo del factorial.
La pestaña de código máquina cuenta cuántas veces se ejecutó cada instrucción. Un cuerpo de bucle que se ejecutó una vez de más o que nunca se ejecutó apunta directamente a un salto erróneo.
¿Necesitas una ilustración del diseño de tu procesador o un clip para tu curso? Créalo con WaveSpeed AI.
Crea ilustraciones tipo diagrama y portadas para diapositivas e informes de prácticas.
Convierte una idea en un clip explicativo corto para tu clase.
Convierte el boceto de una placa o del encapsulado de un chip en un modelo 3D.
$1 en créditos gratis para cuentas nuevas elegibles. Sin tarjeta. Los generadores tienen requisitos de cuenta y créditos aparte. Simulador RISC-V: gratis.
Sí. Este simulador RISC-V online es gratis, sin cuenta, sin límites de ejecuciones y sin nada que instalar.
El conjunto base de enteros de 32 bits (RV32I), la extensión M para multiplicación, división y resto, y la lectura de los contadores cycle, time e instret: el juego de instrucciones básico que se enseña en los cursos de arquitectura de computadores y ensamblador.
La mayoría sí. El código empieza en 0x00400000 y los datos en 0x10010000, y las llamadas al sistema usan los mismos números (a7 = 1 imprimir entero, 4 imprimir cadena, 5 leer entero, 10 salir, etc.) que los simuladores docentes habituales. La pestaña Referencia las enumera todas.
Pon el número de la llamada en a7 y el argumento en a0, y ejecuta ecall. Cuando el programa lee, la consola pide la entrada: escríbela y pulsa Enter. También puedes escribir por adelantado antes de que el programa la pida.
El número de instrucciones es exacto. El número de ciclos es una estimación para un núcleo en orden sencillo: 1 ciclo por instrucción, 2 por carga, 3 por salto o bifurcación tomada, 3 por multiplicación y 33 por división.
Sí. La pestaña Código máquina muestra la dirección, la palabra hexadecimal y la forma decodificada de cada instrucción. Cópialo en hexadecimal, una palabra por línea, o descarga un archivo .hex o un .bin en bruto.
Las palabras deben leerse y escribirse en direcciones múltiplo de 4, y las medias palabras en múltiplos de 2. Pon .align 2 antes de los datos de palabra, o revisa la dirección que calculaste. El error indica la dirección y la línea.
Sí. Paso atrás deshace hasta las últimas 4096 instrucciones, incluidos registros, memoria y salida, para que puedas encontrar un error sin ejecutar desde el principio.
No. El ensamblado y la ejecución se hacen en tu navegador, y tu programa se guarda en el almacenamiento de este navegador, así que seguirá aquí la próxima vez.
Gratis, privado y listo cuando tú lo estés.