SPIM es un simulador de procesador MIPS , diseñado para ejecutar código en lenguaje ensamblador para esta arquitectura. El programa simula procesadores R2000 y R3000 y fue escrito por James R. Larus mientras era profesor en la Universidad de Wisconsin-Madison . [2] El lenguaje de máquina MIPS a menudo se enseña en cursos de ensamblaje de nivel universitario, especialmente aquellos que usan el libro de texto Computer Organization and Design: The Hardware / Software Interface por David A. Patterson y John L. Hennessy ( ISBN 1-55860-428- 6 ).
Desarrollador (es) | James Larus |
---|---|
Lanzamiento estable | 9.1 / julio de 2011 [1] |
Sistema operativo | Linux , Mac OS X , Unix y Windows |
Licencia | Licencia BSD |
Sitio web | spimsimulator |
El nombre del simulador es una inversión de las letras "MIPS".
Los simuladores SPIM están disponibles para los sistemas operativos Windows (PCSpim), Mac OS X y Unix / Linux (xspim). A partir de la versión 8.0 en enero de 2010, el simulador tiene la licencia estándar BSD .
En enero de 2011, una versión de versión principal cuenta con 9,0 QtSpim que tiene una nueva interfaz de usuario basada en la multiplataforma marco de Qt interfaz de usuario y se ejecuta en de Windows , GNU / Linux, y Mac OS X . Desde esta versión, el proyecto también se ha trasladado a SourceForge para un mejor mantenimiento. Se proporcionan versiones precompiladas de QtSpim para Linux (32 bits), Windows y Mac OS X, así como PCSpim para Windows.
El sistema operativo SPIM
El simulador SPIM viene con un sistema operativo rudimentario, que permite al programador el uso de funciones de uso común de una manera cómoda. Estas funciones son invocadas por la instrucción syscall. Luego, el sistema operativo actúa en función de los valores de registros específicos.
Servicio | Código de trampa | Aporte | Producción | Notas |
---|---|---|---|---|
print_int | $ v0 = 1 | $ a0 = entero para imprimir | imprime $ a0 en salida estándar | base = 10 |
print_string | $ v0 = 4 | $ a0 = dirección del primer carácter | imprime una cadena de caracteres en la salida estándar | |
read_int | $ v0 = 5 | entero leído de la entrada estándar colocada en $ v0 | base = 10 | |
sbrk | $ v0 = 9 | $ a0 = número de bytes necesarios | $ v0 = dirección de la memoria asignada | Asigna memoria del montón |
Salida | $ v0 = 10 | |||
file_open | $ v0 = 13 | $ a0 = ruta completa, $ a1 = banderas, $ a2 = modo de archivo octal UNIX | $ v0 = descriptor de archivo | ejemplo; también hay funciones de lectura / escritura / cierre |
SPIM OS espera una etiqueta llamada main como un punto de traspaso del preámbulo del SO.
Alternativas SPIM / Competidores
MARS (MIPS Assembler y Runtime Simulator) [3] es un IDE basado en Java para MIPS Assembly Programming Language y una alternativa a SPIM. Su lanzamiento inicial fue en 2005 y está en desarrollo activo. [ cita requerida ]
Imperas es un conjunto de herramientas de desarrollo de software integradas para la arquitectura MIPS que utiliza tecnología de simulación y emulación de compilación Just-in-time . El simulador se lanzó inicialmente en 2008 y está en desarrollo activo. Hay más de 30 modelos de código abierto de núcleos MIPS de 32 bits [4] y 64 bits [5] .
Ver también
- GXemul (anteriormente conocido como mips64emul), otro emulador de MIPS. A diferencia de SPIM, que se enfoca en emular una implementación de MIPS simple, GXemul está escrito para emular sistemas informáticos completos basados en microprocesadores MIPS; por ejemplo, GXemul puede emular una estación de trabajo DECstation 5000 Modelo 200
- OVPsim también emula MIPS, y donde todos los modelos MIPS son verificados por MIPS Technologies
- QEMU también emula MIPS
- Arquitectura MIPS
Referencias
- ^ "Cambios en Spim" . Archivado desde el original (HTML) el 27 de enero de 2011 . Consultado el 15 de mayo de 2017 .
- ^ "Simulador SPIM MIPS" . Consultado el 1 de octubre de 2016 .
- ^ "Simulador MARS MIPS - Universidad Estatal de Missouri" . Consultado el 1 de octubre de 2016 .
- ^ "Plataformas virtuales abiertas" . Consultado el 1 de octubre de 2016 .
- ^ "Plataformas virtuales abiertas" . Consultado el 1 de octubre de 2016 .