CPU Sim es un entorno de desarrollo de software para la simulación de ordenadores sencillos. Fue desarrollado por Dale Skrien para ayudar a los estudiantes a comprender las arquitecturas de ordenadores . Con esta aplicación, el usuario puede simular CPU sencillas, tanto nuevas como existentes. Los usuarios pueden crear nuevas CPU virtuales con instrucciones personalizadas en lenguaje máquina , implementadas mediante una secuencia de microinstrucciones. CPU Sim permite al usuario editar y ejecutar programas en lenguaje ensamblador para la CPU que se está simulando.
CPU Sim se ha programado utilizando el paquete Java Swing . Esto significa que es independiente de la plataforma (se ejecuta en cualquier plataforma que tenga instalada una máquina virtual Java ).
CPU de muestra Wombat 1
Se incluye un sistema informático de ejemplo, el Wombat 1, con CPU Sim . Dispone de los siguientes registros:
- pc ( contador de programa );
- acc ( acumulador );
- ir ( registro de instrucciones );
- mar ( registro de dirección de memoria );
- mdr ( registro de datos de memoria );
- estado.
El lenguaje ensamblador del ordenador Wombat 1 consta de 12 instrucciones. Cada instrucción se almacena en 16 bits; los primeros 4 son el código de operación y los otros 12 son el campo de dirección.
Características
CPU Sim tiene las siguientes características:
- Permite la creación de una CPU (virtual), incluyendo los registros, la RAM, las microinstrucciones y las instrucciones de máquina;
- Permite la creación, edición y ejecución de programas en lenguaje ensamblador para la CPU simulada;
- Permite avanzar y retroceder en la ejecución de programas en lenguaje ensamblador.
Programa de ejemplo para la CPU Wombat 1
Este programa lee números enteros hasta que encuentra un número negativo. Luego, muestra la suma de todos los números enteros positivos.
Inicio: leer // leer n -> acc jmpn Hecho // salta a Hecho si acc < 0. agregar suma // agregar suma a la cuenta almacenar suma // almacenar la nueva suma Salto Iniciar // volver atrás y leer el siguiente número Listo: cargar suma // cargar la suma final escribir // escribir la suma final detener // detener suma: .datos 2 0 // Ubicación de 2 bytes donde se almacena la suma
En ocasiones también se utiliza la siguiente modificación del programa:
Inicio: leer // leer n -> acc jmpz Hecho // salta a Hecho si nacc es 0. agregar suma // agregar suma a la cuenta almacenar suma // almacenar la nueva suma Salto Iniciar // volver atrás y leer el siguiente número Listo: cargar suma // cargar la suma final escribir // escribir la suma final detener // detener suma: .datos 2 0 // Ubicación de 2 bytes donde se almacena la suma
Este puede usar una entrada negativa para restar, o 0 para romper el bucle.
Véase también
Referencias
- ↑ CPU SIM: Un simulador informático para usar en una clase introductoria de organización y arquitectura de computadoras. Autores: Skrien, Dale
Enlaces externos
- Sitio web oficial
- Repositorio de código fuente de GitHub
- Lista de reproducción de CPUSim en YouTube
- Applet del simulador de CPU
- simuladores de circuitos electrónicos