Simulador de un banco de registros

Introducción

banco de registros

Este proyecto consiste en el desarrollo de un simulador de un banco de registros con 8 registros, del r0 al r7. El banco de registros contará con 5 entradas y 2 salidas.

Las entradas serán las siguientes:

Las salidas del banco de registros serán las siguientes:

Asimismo, la aplicación proporcionará un botón Actualizar que cuando se pulse, activará la simulación del funcionamiento del banco de registros. A saber:

En este proyecto se utilizarán:

Se propone construir esta aplicación de forma incremental, siguiendo los pasos que se describen a continuación.

Paso 1: registros

captura de pantalla

El primer paso consistirá en desarrollar una aplicación que utilice una lista para almacenar el contenido de los registros del r0 al r7 (que se inicializarán con los números del 1 al 8) y que muestre en pantalla su contenido.

La interfaz gráfica constará de los siguientes elementos:

El código de la aplicación deberá:

Descargar solución.

Paso 2: inicialización de la lista registros por programa

Se propone a continuación que en lugar de inicializar la lista registros a mano, esta se inicialice utilizando código. Para ello, deberán realizarse los siguientes cambios:

Descargar solución.

Extensión 2.1: modifica el código para que los elementos de la lista se inicialicen con los números 10, 20, 30, ..., 80.

Extensión 2.2: modifica el código para que el contenido de los registros se visualice en hexadecimal.

Paso 3: lectura del banco de registros

captura de pantalla

El objetivo de este paso es añadir las entradas y salidas relacionadas con la lectura del banco de registros y el código necesario para simular una operación de lectura del banco de registros. Para ello, deberán añadirse los siguientes elementos gráficos:

Además, deberá añadirse código de tal forma que cuando el usuario pulse el botón Actualizar, se muestre en las etiquetas A y B el contenido de los registros especificados en las entradas regA y regB, respectivamente. Para esta parte se recomienda:

Descargar solución.

Extensión 3.1: modifica la interfaz gráfica y el código para en lugar de utilizar cuadros de texto para las entradas regA y regB, se utilicen sendos Spinners.

Extensión 3.2: modifica el código para que las salidas A y B se muestren en hexadecimal.

Paso 4: Escritura en el banco de registros

captura de pantalla

El objetivo de este paso es añadir las entradas y salidas relacionadas con la escritura del banco de registros y el código necesario para simular una operación de escritura del banco de registros. Para ello, deberán añadirse los siguientes elementos gráficos:

Además, deberá añadirse código de tal forma que cuando el usuario pulse el botón Actualizar, se actualice el contenido del registro indicado por regC con el valor de dato y esta actualización se muestre en pantalla. Para esta parte se recomienda:

Descargar solución.

Extensión 4.1: modifica la interfaz gráfica y el código para en lugar de utilizar un cuadro de texto para la entrada regC, se utilice un Spinner.

Paso 5: Selección entre lectura o escritura en el banco de registros

captura de pantalla

El objetivo de último paso es añadir la entrada de control L que permitirá seleccionar qué operación, lectura o escritura, se deberá realizar cuando se pulse el botón Actualizar. Para ello, deberán añadirse los siguientes elementos gráficos:

Además, deberá añadirse código de tal forma que cuando el usuario pulse el botón Actualizar, se llame al procedimiento lee si la casilla L está marcada o al procedimiento escribe si está desmarcada.

Descargar solución.

Extensión 5.1: modifica el código para que al leer o escribir en un registro, se indique gráficamente qué registro se ha leído o escrito cambiando el color de fondo de la etiqueta asociada a ese registro. (Se recomienda crear un procedimiento que dado un número de registro, cambie el color de fondo de dicho registro. De esta forma, bastará con llamar a ese procedimiento cada vez que se lea o escriba un registro simplemente indicando el número del registro del que se ha leído o en el que se ha escrito.)

Extensión 5.6 (avanzada): Integrar el simulador del banco de registros con el simulador de una ALU descrito en el proyecto anterior de tal forma que:

Conclusión

En este proyecto se ha desarrollado un simulador de un banco de registros de 8 registros, que puede proporcionar el contenido de los registros indicados por sus entradas regA y regB y escribir el número presente en su entrada dato en el registro dado por la entrada regC.

Para realizar este proyecto se han utilizado: