Estructura de computadores
LENGUAJE MAQUINA PROCESADOR MIPS
E INTRODUCCIÓN AL SIMULADOR Simula3MS
Objetivos:
Familiarizarse con la arquitectura del MIPS
Conocer el formato de las instrucciones del MIPS
Aprender a manejar el simulador Simula3MS
Desarrollo / Comentario:
Para el desarrollo de esta práctica (y las siguientes) vamos a emplear el programa Simula3MS, que implementa unsubconjunto de las instrucciones del procesador MIPS. Además de poder escribir y ejecutar programas en lenguaje ensamblador del MIPS, el Simula3MS simula el comportamiento del camino de datos durante la ejecución de los mismos. Antes de comenzar con el desarrollo de esta práctica se introducirá la arquitectura del MIPS y la herramienta.
Tanto el programa como el manual de usuario del mismo (queincluye una descripción de la arquitectura del MIPS y del juego de instrucciones implementado) pueden descargarse desde moodle.
Parte 1)
a. Rellena las columnas Nemotécnico y Formato indicando a qué instrucciones del MIPS hacen referencia los siguientes palabras de 32 bits almacenadas en memoria a partir de la dirección 0x00400000, así como el formato de cada una de las instrucciones:Dirección Palabra almacenada Nemotécnico Formato
[0x00400000] 0x3c091001 lui $t1, 0x1001 I
[0x00400004] 0x35290000 ori $t1, $t1, 0x0000 I
[0x00400008] 0x200b0005 addi $t3, $zero, 0x0005 I
[0x0040000c] 0x8d2a0000 lw $t1, 0 ($t2) I
[0x00400010] 0x21290004 addi $t1,$t1, 0x0004 I
[0x00400014] 0x216bffff addi $t3, $t3, 0xFFFF I
[0x00400018] 0x012a5820 add $t3, $t1, $t2 R
Comprobar que están bien usando el simulador
Análisis de un Programa Ejemplo. Estudia el programa ejemplo que se muestra a continuación para comprender su funcionamiento.
Observarque:
hay dos secciones:
.data (opcional): Contiene la declaración de variables necesarias. Se guardan en el segmento de datos del programa.
.text (obligatoria): Contiene las instrucciones. Se guardan en el segmento de texto del programa.
Los comentarios se ponen con el símbolo #
Etiqueta: debe ser única en la línea
Declaración de variables: Etiqueta_Nombre_var:
Donde tipo puede ser:.ascii
.asciiz
.word
.space
.float
.double
Por defecto se usa base 10
b. Indica qué hace el programa.
Lee dato1 y lo carga en un registro ($s1). Después lee dato2 y lo carga en otro registro ($s3). Luego, suma los registros $s1 y $s3. A esto le resta 5 y por último, lo almacena en $t0.
c. ¿Qué valor se almacena en resul?____0x00002004________
d. Indica en hexadecimal la codificación de las siguientes instrucciones máquina.
lw $s3, 0($s2) 0x8E530000
add $t0, $s1, $s3 0x02334020
addi $t0, $t0, -5 0x2108FFFB
sw $t0, 0($t1) 0xAD280000
Parte 2) Uso del simulador Simula3MS
e. Ejecutar el programa Simula3MS y cargar el programa 2012Practica1.s (opción Archivo/Abrir)
f.Ensamblar el programa. Si no tiene errores entrar en Ejecutar. Observar la información que aparece.
¿A partir de qué dirección de memoria se han cargado las instrucciones del programa?__ ________0x00400000________________
¿A partir de qué dirección de memoria se han cargado los datos del programa?____0x10010000__________
¿Qué valor tiene el PC?___0400000______
Comprobar en el segmento de texto quehabéis realizado correctamente el apartado d.
¿Qué valor toma la etiqueta dato2? ____0x10010008________
g. Observar el segmento de datos. Indica el valor que hay cargado en las direcciones de memoria :
a. dato1 __0a__, dato1 +1 __00__, dato1 +2 __00__, dato1 +3 __00__,
b. dato2 __FF__
c. dato2+2 __00__
h. Indica la dirección de memoria en la que se...
Regístrate para leer el documento completo.