Práctica 1.1.2: Seguimiento del ciclo de ejecución con LMC
1.1.2. Seguimiento del ciclo de ejecución con LMC¶
En esta práctica ejecutarás un pequeño programa en Little Man Computer (LMC). El programa leerá dos valores, los sumará y mostrará el resultado. Al avanzar instrucción a instrucción podrás observar un modelo sencillo de CPU, memoria y entrada/salida.
LMC es un simulador educativo de una máquina muy simplificada. Sirve para comprender algunas ideas del ciclo de ejecución, pero no reproduce completamente un ordenador real ni representa fielmente las arquitecturas modernas.
1. Objetivos¶
- Seguir la ejecución de instrucciones mediante el contador de programa (PC).
- Observar cómo el acumulador (ACC) participa en las operaciones.
- Distinguir instrucciones, datos almacenados en memoria y operaciones de entrada/salida.
- Relacionar las observaciones del simulador con CPU, memoria y periféricos, reconociendo los límites del modelo.
2. Relación con RA y criterios de evaluación¶
| Código | Descripción |
|---|---|
| RA 1 | Reconoce los elementos y herramientas que intervienen en el desarrollo de un programa informático, analizando sus características y las fases en las que actúan hasta llegar a su puesta en funcionamiento. |
| CE 1.a | Se ha reconocido la relación de los programas con los componentes del sistema informático: memoria, procesador, periféricos, entre otros. |
La actividad se centra en reconocer la colaboración entre instrucciones, memoria, procesador y entrada/salida; no evalúa la arquitectura de una CPU comercial concreta.
3. Requisitos y recursos¶
- Un navegador web con conexión a Internet.
- Acceso al simulador Little Man Computer de Peter Higginson.
- La teoría 1.1. Relación entre software y hardware.
- Vocabulario básico: una instrucción indica una operación; el PC (contador de programa) señala la dirección de la siguiente instrucción; el ACC (acumulador) conserva el valor usado por operaciones aritméticas. El simulador puede nombrar los registros de otra manera.
4. Pasos a seguir¶
4.1. Preparar y ejecutar el programa¶
-
Abre el simulador LMC. Localiza el área para escribir el programa, la memoria, los controles de ejecución y las zonas de entrada y salida. La disposición visual puede variar; busca las funciones aunque tengan otro nombre.
-
Escribe o pega el siguiente programa. Las líneas con
DATrepresentan datos en memoria, no operaciones que debas ejecutar como instrucciones. -
Antes de ejecutar, comprueba que la etiqueta
NUM1aparece igual enSTA NUM1,ADD NUM1y en la declaraciónNUM1 DAT 0. Si el simulador ofrece una opción de ensamblado o carga, úsala para preparar el programa; resuelve cualquier error de sintaxis antes de continuar. -
Reinicia la ejecución y selecciona la opción de avanzar un paso. Cuando el programa solicite el primer dato, introduce
5y confirma la entrada. Continúa paso a paso hasta la siguiente instrucciónINP; introduce3cuando lo solicite. Anota cada instrucción ejecutada y observa cómo cambian el PC y el ACC. -
Completa una fila de registro tras cada paso. Anota el PC y el ACC antes o después del paso, pero indica claramente qué convención usas. Cuando la interfaz muestre la instrucción actual, cópiala; consulta también el contenido de
NUM1cuando sea visible. Para la entrada/salida, registra cuándo se pide cada valor y qué resultado aparece. Si el simulador no expone alguno de esos datos, escribe «no visible» y razona qué debería ocurrir.Paso PC (antes → después) Instrucción ACC (antes → después) NUM1Entrada/salida 1 2 3 4 5 6 -
Sigue hasta que el programa se detenga. Comprueba que la salida es
8. Si la simulación se queda esperando una entrada, verifica que has confirmado el valor solicitado; si el resultado no coincide, reinicia y comprueba el orden de los datos y las etiquetas.
4.2. Interpretar el recorrido de los datos¶
-
Relaciona la petición de valores mediante
INPcon una entrada proporcionada desde la interfaz del simulador. En un ordenador real, la entrada puede proceder de periféricos como teclado o sensores; el simulador abstrae esos detalles. -
Observa que
STA NUM1guarda el primer valor en la posición identificada por la etiquetaNUM1. La instrucciónADD NUM1suma ese valor al que está en el acumulador. En la suma elegida, el ACC acaba conteniendo8antes de queOUTlo muestre. -
Relaciona la ejecución de
INP,STA,ADD,OUTyHLTcon el trabajo de una CPU que obtiene y ejecuta instrucciones. La memoria del LMC almacena tanto instrucciones como el datoNUM1; no confundas esa memoria didáctica con todos los niveles de memoria de un equipo real.
5. Comprobaciones de finalización¶
- El simulador acepta el programa sin errores y solicita dos entradas.
- Has introducido
5y3en ese orden, y la salida final es8. - Tu tabla registra el PC, la instrucción, el ACC,
NUM1y la entrada/salida, o indica con claridad qué valores no muestra el simulador. - Puedes explicar que
NUM1conserva el primer dato y queADD NUM1suma ese dato al valor del acumulador. - Distingues el modelo simplificado LMC de la arquitectura completa de un ordenador actual.
6. Ejercicios y entregables¶
- Responde brevemente:
- ¿En qué momento recibe el programa cada entrada y qué componente del sistema real puede relacionarse con esa operación?
- ¿Qué valor guarda
NUM1después deSTA NUM1? ¿Qué valor queda en el ACC trasADD NUM1? - ¿Para qué sirve el PC durante la ejecución? ¿Qué observas que ocurre con él al avanzar?
- ¿Qué diferencia hay entre
NUM1 DAT 0y una instrucción comoADD NUM1? - ¿Qué simplificaciones del LMC impiden considerarlo una reproducción completa de un ordenador real?
- Cambia las entradas a
2y6, reinicia y vuelve a ejecutar paso a paso. Predice el resultado antes de ejecutar y contrástalo con la salida. Registra al menos los cambios de ACC yNUM1. - Entrega un documento identificado con tu nombre, módulo, unidad y práctica que incluya la tabla de seguimiento, las respuestas, la predicción y resultado del segundo caso y una captura de la ejecución final. Añade una explicación breve que relacione CPU, memoria y entrada/salida, e indica qué información no pudiste observar directamente.
7. Solución orientativa¶
Con entradas 5 y 3, la primera instrucción INP coloca 5 en el ACC. STA NUM1 copia ese valor a la celda etiquetada NUM1. La segunda instrucción INP coloca 3 en el ACC, sin borrar el dato guardado en NUM1. ADD NUM1 suma 5 al 3 y deja 8 en el ACC. OUT presenta 8 en la salida y HLT detiene el programa. El PC avanza por las instrucciones ejecutables; los valores exactos y si se muestran antes o después de cada paso dependen de la interfaz.
En el segundo caso, NUM1 queda en 2, el ACC recibe después 6 y la suma produce 8. La entrada y la salida aparecen como acciones del entorno simulado, relacionadas de forma general con periféricos. El LMC hace visible un modelo elemental de memoria y ejecución; no modela todos los registros, cachés, mecanismos de entrada/salida, sistema operativo ni detalles de una CPU moderna.
Fuentes y referencias¶
- Simulador Little Man Computer de Peter Higginson.
- Relación entre software y hardware, teoría de la unidad.
- PCjs Machines, recurso opcional de ampliación sobre máquinas históricas simuladas; no es requisito para completar esta práctica.