Translate

viernes, 21 de diciembre de 2012

Práctica 5


Para comenzar a realizar la práctica necesitaríamos el simulador SIMULA3MS y un computador con Java. Con esto podemos iniciar la práctica.

  • 1.- Para aprender a utilizar este nuevo entorno de simulación de MIPS el alumno/a deberá hacer uso del manual adjunto a la práctica. Del manual debe extraerse toda la información necesaria sobre cómo escribir un programa, esto es, declaración de variables, juego de instrucciones y su sintaxis así como toda la información sobre los 32 registros de que dispone este procesador.
  • Este apartado es fácil de realizar simplemente mirando el manual y viendo cómo se maneja el programa. El manual podemos encontrarlo en la misma carpeta en la de la practica 5
  •   

    • 2.-Atendiendo al manual y usando el editor de Simula3MS, escriba el programa de ejemplo que se muestra en la figura 1.


    Con esta captura vemos el programa copiado que indicaban en la práctica.
    • 3.-Guarde el fichero y a continuación pinche sobre el botón ensamblar y compruebe que no se produce ningún error, figura 2


     Si se produjesen errores saldrían en el cuadro de zona de errores.

    • 4.-Si ha habido errores repase la sintaxis de las instrucciones ayudándose del manual. En caso contrario, pique sobre ejecutar para iniciar el proceso de simulación de ejecución del programa recién creado.Observe en la nueva ventana las zonas que se destacan en la figura.


    Así quedaría el programa justo después de darle al botón ejecutar. 


    • 5.-Ejecute paso a paso el programa haciendo uso del botón “Ciclo siguiente”, cada vez que lo pulse se destacará en color azul la instrucción en curso. Observe y anote los cambios que se producen en el contenido de los registros usados, así como de la memoria de datos.
    • Registros
      • $t0:10010000 $s0:00000064            (Valor interno de $t0)
      • $t1:10010004 $s1:fffffff6                (Valor interno de $t1)
      • $t2:10010008 $s2:0000005a            (Resultado de la suma)
    • Memo datos:
      • Dirección 0x10010000:0x00000064
      • Dirección 0x10010004:0xfffffff6
      • Dirección 0x10010008:0x0000005

    • 6.-Escriba el siguiente código usando el editor, ensamble y ejecute para a continuación explicar qué hace este programa. Durante la ejecución observe también como la arquitectura mostrada (Figura 4) va cambiando de color, será de utilidad para la siguiente práctica.



    • Explicación del código:La palabra está dividida en bloques de 4 bytes, y cada byte en este caso tiene un valor, al hacer cada carga de palabra (LW) almacenamos en cada registro el valor de cada byte de dicha palabra.
    • Contenido del segmento de datos de memoria al inicio de la ejecución:
      • 0x10010000: 0x000000d2
      • 0x10010004: 0x000000f0
      • 0x10010008: 0x0000014a
      • 0x1001000c: 0x00001608
    • Contenido del registro t1 antes de la ejecución:
      • t1:00000000
    • Valor del registro PC antes de la ejecución:
      • PC:00400000
    • Contenido del registro t1 después de la ejecución:
      • t1:10010000
    • Contenido de los registros siguientes al término de la ejecución:
      • s0:000000d
      • s1:000000f0
      • s2:0000014a
    • Valor del registro PC al término de la ejecución:
      • PC:00400018

    • 7.-Es posible realizar llamadas al sistema para visualizar por pantalla datos o incluso introducir algunos, apartado A.5. del manual. Para pedir un servicio hay que cargar el código de la llamada deseada en el registro de MIPS denominado $v0 y los argumentos que se van a mostrar o leer en los registros $a0 ó $a1. Una vez establecidos estos valores se procederá a efectuar la llamada con syscall.Escriba el siguiente código usando el editor de Simula3MS, ensamble y ejecute y compruebe el resultado.
    Copiamos el código, lo ensamblamos y lo ejecutamos.



    En el ciclo 5 de su ejecución cuando ha realizado la llamada asociada con imprimir por pantalla, muestra con el syscall (efectúa la llamada) el número en pantalla, luego continúa los ciclos y realiza la llamada que indica al procesador que debe salir del programa. Este sería un breve análisis de lo que realiza este programa.
    • 8.-Construya un nuevo programa que solicite por teclado tres valores enteros y los almacene en memoria en un vector llamado “vector” para el que previamente se habrán reservado cuatro palabras de memoria, tres para los enteros introducidos y un cuarto para guardar el resultado final. Luego complete el programa efectuando la suma de los elementos del vector construido y muéstrelo por pantalla. Compruebe que no hay errores sintácticos y efectúe su ejecución para validar su funcionalidad.

    Lo ejecutamos y mostramos dos imágenes para probar su funcionamiento, el ejemplo mostrado será:

    Vector V(2,2,2) Suma de V=6
    Este paso se repetirá dos veces más y terminaría así



    No hay comentarios:

    Publicar un comentario