Práctica 4
LENGUAJE Y ARQUITECTURA
objetivo de la práctica
En el proyecto 4 se plantea como principal objetivo el trabajar la programación de bajo nivel en lenguaje de maquina y adquirir conocimientos sobre Hack Computing System. Se busca que al realizar este proyecto se logre una familiarización con el proceso de lenguaje ensamblador, lo que significa traducción de lenguaje simbólico a lenguaje de máquina. Además, de evaluar la manera cómo se ejecuta el código binario nativo en la plataforma hardware de destino. Para cumplir con esto, se trabajará sobre dos programas: multi.asm y fill.asm, en donde para ambos se realiza su respectivo código y prueba de funcionamiento según los requerimientos exigidos.
En proyectos previos, hemos construido los dispositivos básicos de almacenamiento y procesamiento informático (ALU y RAM, respectivamente). En este proyecto 5, uniremos todo para crear una plataforma de hardware de piratería completa. El resultado será una computadora de uso general capaz de ejecutar programas escritos en el lenguaje de la máquina de hacking. Por ello, el principal objetivo será completar la construcción de la CPU Hack y la plataforma de hardware Hack, hasta llegar al chip informático superior.
Desarrollo
Proyecto 4
Multiplicación (programa Mult.asm)
Este programa es bastante simple. Consta de 3 memorias ram (R0, R1 y R2), en donde en R0 y R1 se van a colocar los números a multiplicar (R0*R1) y el ram 2 (R2) es quien multiplicará. La forma en la que se multiplican esos números es haciendo sumas repetitivas en un ciclo.
I/O handling (programa fill.asm)
Este programa ofrece la capacidad de manejar hardware de pantalla y teclado de bajo nivel. Para ello, el programa ejecuta un ciclo infinito para escuchar la entrada del teclado. cuando presiona cualquier tecla, el programa atenúa la pantalla, es decir, escribirá "negro" en cada píxel; La pantalla permanecerá completamente negra hasta que se presione la tecla. Cuando no se presiona ninguna tecla, el programa limpia la pantalla, es decir, escribe "vacío" para cada píxel; La pantalla estará completamente en blanco mientras no se presione ninguna tecla.
Desarrollo
Proyecto 5
Memory:
Se trata de un circuito integrado capaz de almacenar datos durante una determinada cantiadad de tiempo y transmitirlo para posteriormente ser procesada en código. Dicho proceso se realiza mediante la transmisión de señales electronicas por los componentes del chip.
CPU (Central Processing Unit)
Se trata de un componente de hardware compueto de un circuito electronico capaz de interpretar instrucciones mediante la realización de operaciones aritméticas, lógicas y externas.
Computer:
Este chip tiene como objetivo ser un chip de computadora de alto nivel. Tiene la capacidad de ejecutar programas en lenguaje Hack y mostrar su funcionamiento. Para su funcionamiento se utilizarán 3 programas:
Add.hack
Max.hack
Rect.hack
Add.hack
Add.hack es un programa escrito en en el lenguaje Hack, su finalidad es probar el Chip Computer. Se agregan dos constantes 2 y 3, y se escribe el resultado en la RAM[0].
Max.hack
Max.hack es un programa utilizado para probar y demostrar el funcionamiento del chip de la computadora, este programa calcula el maximo de RAM[0] y RAM[1], describe el resultado en RAM[2].
Rect.hack
Rect.hack es el programa que demuestra la interaccion del chip computer con la pantalla, este dibuja un rectángulo de 16 pixeles de ancho y RAM[0] de largo, este está ubicado en la parte izquierda de la pantalla.