Saltar a contenido

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

4. Pasos a seguir

4.1. Preparar y ejecutar el programa

  1. 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.

  2. Escribe o pega el siguiente programa. Las líneas con DAT representan datos en memoria, no operaciones que debas ejecutar como instrucciones.

    INP           ; Entrada del primer número
    STA NUM1      ; Guardar el número en la memoria
    INP           ; Entrada del segundo número
    ADD NUM1      ; Sumar NUM1 al acumulador
    OUT           ; Mostrar el resultado
    HLT           ; Terminar el programa
    NUM1 DAT 0    ; Variable para almacenar el primer número
    
  3. Antes de ejecutar, comprueba que la etiqueta NUM1 aparece igual en STA NUM1, ADD NUM1 y en la declaración NUM1 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.

  4. Reinicia la ejecución y selecciona la opción de avanzar un paso. Cuando el programa solicite el primer dato, introduce 5 y confirma la entrada. Continúa paso a paso hasta la siguiente instrucción INP; introduce 3 cuando lo solicite. Anota cada instrucción ejecutada y observa cómo cambian el PC y el ACC.

  5. 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 NUM1 cuando 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) NUM1 Entrada/salida
    1
    2
    3
    4
    5
    6
  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

  1. Relaciona la petición de valores mediante INP con 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.

  2. Observa que STA NUM1 guarda el primer valor en la posición identificada por la etiqueta NUM1. La instrucción ADD NUM1 suma ese valor al que está en el acumulador. En la suma elegida, el ACC acaba conteniendo 8 antes de que OUT lo muestre.

  3. Relaciona la ejecución de INP, STA, ADD, OUT y HLT con el trabajo de una CPU que obtiene y ejecuta instrucciones. La memoria del LMC almacena tanto instrucciones como el dato NUM1; 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 5 y 3 en ese orden, y la salida final es 8.
  • Tu tabla registra el PC, la instrucción, el ACC, NUM1 y la entrada/salida, o indica con claridad qué valores no muestra el simulador.
  • Puedes explicar que NUM1 conserva el primer dato y que ADD NUM1 suma ese dato al valor del acumulador.
  • Distingues el modelo simplificado LMC de la arquitectura completa de un ordenador actual.

6. Ejercicios y entregables

  1. 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 NUM1 después de STA NUM1? ¿Qué valor queda en el ACC tras ADD NUM1?
    • ¿Para qué sirve el PC durante la ejecución? ¿Qué observas que ocurre con él al avanzar?
    • ¿Qué diferencia hay entre NUM1 DAT 0 y una instrucción como ADD NUM1?
    • ¿Qué simplificaciones del LMC impiden considerarlo una reproducción completa de un ordenador real?
  2. Cambia las entradas a 2 y 6, 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 y NUM1.
  3. 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