Unidad 1
Introducción 📜
Sección titulada «Introducción 📜»El objetivo de esta unidad es que puedas comprender la arquitectura de un computador digital moderno. Para ello usaremos como caso de estudio un computador simple, pero didáctico llamado computador Hack. Programarás este computador utilizando su lenguaje ensamblador y desarrollarás programas simples, pero interactivos que harán uso de operaciones de entrada/salida.
Rúbrica de evaluación de la unidad 📝
Sección titulada «Rúbrica de evaluación de la unidad 📝»Requisito de salida (condición necesaria)
Sección titulada «Requisito de salida (condición necesaria)»Rúbrica analítica
Sección titulada «Rúbrica analítica»| Criterio (peso) | Cumple plenamente (5.0) | Se cumple medianamente (4.0) | Problemas importantes (3.0) | Falta comprensión básica (2.0) | No hay evidencia (0.0) |
|---|---|---|---|---|---|
| 1. Aplicación + bitácora (40%) | La app se ejecuta sin fallos en el entorno acordado. Evidencia completa y verificable en bitácora. Todo consistente con lo mostrado en la demo. | La app funciona y cumple lo esencial. La bitácora permite verificar, pero hay 1–2 vacíos menores | La app funciona parcialmente o depende de condiciones no declaradas. Bitácora con vacíos importantes o incompleta. | La app no corre o no demuestra lo requerido. La bitácora no permite verificación de la app. | No se entregaron evidencias o no se puede acceder a ellas |
| Evaluación | |||||
| 2. Sustentación (60%) | Responde a las preguntas con precisión, conectando: (a) lo que se ve, (b) cómo está hecho, y (c) por qué. Usa su bitácora para justificar decisiones. Reconoce límites/errores y propone cómo probar/mejorar. | Respuestas correctas pero con imprecisiones menores o justificación superficial. Usa parcialmente la bitácora para sustentar. | Responde solo “qué hizo” pero le cuesta explicar “cómo” o “por qué”. Necesita guía para conectar con su propia evidencia/bitácora. | No logra responder de forma coherente o responde sin relación con lo presentado/documentado. Evidencia falta de comprensión básica del trabajo entregado. | No se entregaron evidencias o no se puede acceder a ellas |
| Evaluación |
Set: ¿Qué aprenderás en esta unidad? 💡
Sección titulada «Set: ¿Qué aprenderás en esta unidad? 💡»- Comprender una arquitectura de un computador digital simple.
- Conocer su lenguaje ensamblador.
- Desarrollar programas interactivos simples.
- Manipular la memoria.
- Realizar operaciones aritmético-lógicas.
- Controlar el flujo de un programa.
- Manejar la entrada y salida de datos.
Actividad 01
Sección titulada «Actividad 01»En esta actividad vamos a explorar el concepto del ciclo fetch-decode-execute
El siguiente programa está escrito en el lenguaje ensamblador del computador Hack. Este computador no es un computador comercial, sino un computador didáctico que te permitirá acercarte a los conceptos fundamentales de manera amigable.
@1D=A@2D=D+A@16M=D@END(END)0;JMP¿Qué crees que haga este programa?
Para responder a esta pregunta vamos a analizarlo paso a paso usando un simulador de la CPU Hack que está aquí.
Para ejecutar este programa la CPU realiza un ciclo constante llamado Fetch-Decode-Execute.
El ciclo Fetch-Decode-Execute describe cómo la CPU ejecuta instrucciones de un programa. Aquí está explicado de forma breve y simple:
Fetch (buscar): la CPU obtiene (lee) la siguiente instrucción desde la memoria. El contador de programa (PC) indica dónde se encuentra esa instrucción en la memoria ROM.
Decode (decodificar): la CPU interpreta la instrucción que acaba de leer. Esto significa entender qué operación debe realizarse y qué datos o recursos necesita.
Execute (ejecutar): la CPU realiza la operación indicada. Por ejemplo, puede ser una operación matemática, mover datos entre registros, o acceder a la memoria.
Este ciclo se repite continuamente mientras la computadora esté encendida, procesando instrucciones una tras otra. Es la base del funcionamiento de cualquier procesador.
Seek: Investigación 🔎
Sección titulada «Seek: Investigación 🔎»Una vez has comprendido los conceptos básicos, es hora de profundizar en el funcionamiento del computador Hack y su lenguaje ensamblador.
Actividad 02
Sección titulada «Actividad 02»Explorando la arquitectura del computador Hack
Sección titulada «Explorando la arquitectura del computador Hack»Ahora vamos a analizar juntos el siguiente programa. Este programa tendrá todos los conceptos que vamos investigar en la siguiente fase de la unidad de manera más profunda. En qué nos enfocaremos:
- Las partes del computador Hack.
- El modelo de programación de la CPU.
- La diferencia entre memoria RAM y registros.
- Los tipos de instrucciones del lenguaje ensamblador.
- Cómo leo el teclado y muestro en pantalla.
- Cómo implemento un bucle.
- Cómo implemento una condición.
- ¿Qué es la ALU y qué operaciones realiza?
En “este” enlace está la documentación del computador Hack.
@SCREEND=A@iM=D(READKEYBOARD)@KBDD=M@KEYPRESSEDD;JNE@iD=M@SCREEND=D-A@READKEYBOARDD;JLE@iM=M-1A=MM=0@READKEYBOARD0;JMP
(KEYPRESSED)@iD=M@KBDD=D-A@READKEYBOARDD;JGE@16A=MM=-1@iM=M+1@READKEYBOARD0;JMPActividad 03
Sección titulada «Actividad 03»Control de flujo con saltos
Sección titulada «Control de flujo con saltos»Vamos a resolver juntos este problema:
Escribe un programa que compare el valor almacenado en la dirección de memoria 5 con el valor 10. Si el valor es menor que 10, guarda el valor 1 en la dirección 7. Si el valor es mayor o igual a 10, guarda el valor 0 en la dirección 7.
Apply: Aplicación 🛠
Sección titulada «Apply: Aplicación 🛠»Actividad 04
Sección titulada «Actividad 04»Implementando un ciclo simple
Sección titulada «Implementando un ciclo simple»Crea un programa que use un ciclo para sumar los números del 1 al 5 y guarde el resultado en la dirección de memoria 12.