Sesión 1

Usando XSPIM, un simulador del MIPS R2000/R3000


1.1 Objetivo General

Presentar las características principales de XSPIM, el simulador del procesador MIPS R2000/R3000 que usaremos a lo largo de las sesiones del laboratorio.

1.2 Objetivos específicos

Al terminar esta sesión de laboratorio:

XSPIM es un simulador que ejecuta programas para las computadoras RISC basadas en los procesadores MIPS R2000/R3000 y ha sido desarrollado por James R. Laurus en la Universidad de Wisconsin-Madison. XSPIM puede leer archivos que contienen programas en lenguaje ensamblador y permite su ejecución tanto paso a paso como sin interrupciones. XSPIM provee al usuario, además, una interface con algunos servicios del sistema operativo.

Evidentemente, la ejecución de código MIPS en una máquina con este procesador resultaría mucho más rápida que el empleo de un simulador, sin embargo, en cursos como este se usan simuladores para tal propósito porque, sin tomar en cuenta que máquinas con tales procesadores no se encuentran disponibles en cualquier lugar, los simuladores brindan mejores ambientes de desarrollo para programadores de bajo nivel que las máquinas reales ya que, en general, pueden detectar un mayor número de errores.

Aquí tienes una imagen de la interfaz del xspim como apoyo, dá click aquí

1.4 Cargando y ejecutando un programa en ensamblador

  1. Teclea el siguiente archivo, simple.s.
  2. Comienza la ejecución de xspim.
  3. Carga el archivo simple.s usando el boton load.
  4. Ejecuta el botón run. Como consecuencia de la ejecución debe aparecer una ventana que hace las veces de consola (en ella despliega la salida del programa y se tomanlas entradas del teclado) con el mensaje =) .
    Debes tener cuidado al manejar la consola, pues bajo algunos manejadores de ventanas cerrar esta ventana con los controles en su borde implica terminar la ejecución de la aplicación; si deseas cerrar la ventana, mejor utiliza el botón terminal del panel de control.
  5. Vuelve a cargar el archivo simple.s y ejecútala paso a paso ayudandote de la caja de diálogo que aparece al presionar el btón step del panel de control. Trata de entender el efecto que tienen las instrucciones ejecutadas sobre los registros.

1.4.1 simple.s

simple.s

1.5 Examinando y modificando el contenido de la memoria

Para examinar el contenido de la memoria basta con ver el panel de los segmentos de datos y buscar la localidad de memoria deseada. En el panel de segmentos se observa primero un número hexadecimal entre corchetes cuadrados y luego un grupo de cuatro hexadecimales de 32bits cada uno en el mismo renglón. El primer hexadecimal indica la localidad de memoria en la que está almacenado el primer byte del primer grupo de cuatro y los siguientes bytes del grupo se encuentran en los quince bytes siguientes de la memoria.

  1. Carga (o vuelve a cargar) el archivo simple.s.
  2. Usando el btón set value del panel de control, fija el valor de la localidad de memoria 0x100010000 al valor 0x2a2a2a2a.
  3. Ejecuta el programa y verás que ahora el mensaje que se imprime ahora es ****.

    1.6 Examinando y modificando el contenido de los registros

En el primer panel de la ventana de xspim se muestran los registros del MIPS y su contenido. Como podrás observar, se tienen 32 registros de prpopósito general de 32 bits cada uno. Nota que cada uno tiene asociado un identificador de dos letras que se muestran entre paréntesis. Posteriormente aprenderemos el propósito de cada uno de estos registros.

Para modificar el contenido de un registro se sigue un procedimiento análogo al visto en la sección 1.5.

  1. Carga (o vuelve a cargar) el archivo simple.s
  2. Ejecuta paso a paso el programa hasta que el registro llamado PC (Program Counter) contenga el valor 0x00400028.
  3. Usando el boton set value del panel de control fija el valor del registro $9 en 5.
  4. Continua la ejecución del programa y verás que ahora el mensaje que se imprime ahora es =(.

1.7 Preguntas de revisión

  1. Describe cada uno de los paneles de la ventana de xspim.
  2. Describe cada uno de los botones del panel de control de xspim.
  3. Según la documentación de SPIM. ¿Cuáles son las carácterisitcas sorprendentes del simulador respecto a la máquina real?
  4. Según la documentación de SPIM. ¿por qué no es posible modificar el contenido del regsitro 0 (R0) del MIPS?
  5. Revisa las instrucciones del ensamblador del MIPS descritas en la documentación de SPIM y explica cuál fue la causa del cambio en el mensaje impreso por simple.s en el punto 1.4.
    Cuando una sesión de laboratorio se requiera realizar un programa y/o reporte, éste deberá entregarse por e-mail. El mensaje electrónico deberá contener un archivo .tar.z o .tgz( o en su defecto .zip) con los programas incluidos y/o el reporte de la sesión (si es necesario). Al expandir el archivo tgz, deberá contener un directorio llamado con el login de tu cuenta, luego un subdirectorio llamado como la sesión (por ejemplo sesion1, o sesion2), finalmente, los programas y/o reportes a entregar. Los reportes deberán ser enviados en formato postcrip (ps) o en archivo PDF, cualquier otro formato no será recibido. Y algo muy importante, los programas y/o reportes deberán de entregarse en la fecha indicada, no se recibirán después.

Volver a la Introducción