La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

© 1997-2006 Prof. José Mª Foces Morán PCSpim: SPIM sobre Windows Ventana principal de PCSpim Consola: permite interactuar con el programa que está siendo.

Presentaciones similares


Presentación del tema: "© 1997-2006 Prof. José Mª Foces Morán PCSpim: SPIM sobre Windows Ventana principal de PCSpim Consola: permite interactuar con el programa que está siendo."— Transcripción de la presentación:

1 © 1997-2006 Prof. José Mª Foces Morán PCSpim: SPIM sobre Windows Ventana principal de PCSpim Consola: permite interactuar con el programa que está siendo simulado. DATA SEGMENT: Ver el segmento de datos del programa simulado. MESSAGES: Progreso de la simulación. REGISTERS: Ver los registros arquitecturados de MIPS en tiempo real TEXT SEGMENT:Ver instrucciones en su formato binario y ensamblador

2 © 1997-2006 Prof. José Mª Foces Morán SPIM: Arquitectura Arquitectura de 32 bits.  Los registros son de 32 bits de ancho  Las direcciones de memoria  Las instrucciones tienen 32 bits de ancho. Arquitectura Load/Store:  Las operaciones con la memoria están limitadas a cargas y almacenamientos.  No hay ninguna instrucción de incremento de memoria.  No hay modos indirectos.  Las instrucciones emplean tres direcciones: destino, fuente1, fuente2 add t0, t1, t2  Tiene 32 registros Uno de ellos, llamado $zero, contiene un cero, siempre.  Little-endian: extremista inferior.  Esta versión de Spim, la cual, corre sobre Windows para Intel-32, es little-endian, igual que la plataforma Intel-32.  Sobre UNIX o LINUX para SPARC, por ejemplo, es big- endian.

3 © 1997-2006 Prof. José Mª Foces Morán SPIM: MIPS assembly language. Lenguaje ensamblaje de MIPS(assembly).  Ofrece un nivel de abstracción superior al de la arquitectura.  Los programas se van escribiendo instrucción-a- instrucción, igual que en el caso anterior.  Constituye una forma más "simbólica" de escribir un programa.  Una sentencia de lenguaje de ensamblaje tiene:  Etiqueta - nombres simbólicos: Permite nombrar tanto instrucciones como datos simples y arrays.  Campo de instrucción:  Nemónico de la operación (P.ej.: add ).  Operandos : Pueden ser etiquetas o números.  Bandera de indirecto.  Campo de comentarios: ;

4 © 1997-2006 Prof. José Mª Foces Morán SPIM: Registros. MIPS posee 32 registros de propósito general: $0 a $32. El lenguaje de ensamblaje de MIPS (y también SPIM) les asocia un nombre simbólico representativo de los convenios que se aplican al uso de cada registro. REGISTROS de SPIM/MIPS.  El nombre indica el propósito del registro:  $v0-$v1, el valor de retorno de una función.  $a0-$a3, los argumentos 1-4  $t0-$t9, registros temporales  $s0-$s7, registros temporales con garantía de que se salvan entre llamadas a subrutinas.  $gp, puntero al area global  $sp, puntero de pila  $fp, puntero de marco de pila  $ra, dirección de retorno  $k0-$k1, reservados para el kernel del SO. INSTRUCCIONES QUE MANEJAN REGISTROS.  Copiar el contenido de rs a rd move rd, rs  Obtener la suma de rs1 y rs2 y poner el resultado en rd addu rd, rs1, rs2  Obtener la resta rs1- rs2, sin signo y poner resultado en rd: subu rd, rs1, rs2

5 © 1997-2006 Prof. José Mª Foces Morán SPIM: Segmentos. Los programas que simula SPIM son programas escritos en ensamblador de MIPS y su estructura contiene al menos tres segmentos: datos, código y pila. SEGMENTOS  Dentro de un fichero ejecutable los datos y los programas están separados en tres áreas :  SEGMENTO DE CODIGO: Contiene las instrucciones del programa Es de sólo lectura El directivo empleado para delimitar el segmento de código en el texto fuente es:.text  SEGMENTO DE DATOS: Contiene datos estáticos Lectura y escritura El directivo empleado para delimitar el segmento de datos en el texto fuente es:.data  SEGMENTO DE PILA: Guarda información sobre los procedimientos/subrutinas en ejecución. Guarda la dirección de retorno de proc/subrutina. Guarda las variables locales de una proc/subrutina.

6 © 1997-2006 Prof. José Mª Foces Morán SPIM: Reserva de espacio de memoria para constantes y variables.  Cadenas terminadas en ‘\0’. El directivo es.asciiz.El ejemplo siguiente crea una cadena llamada auto-terminada en ‘\0’ llamada mi_mensaje mi_mensaje.asciiz “Hola mundo!\n”  bytes, fp-simple precisión, fp-doble, words:  El directivo.byte reserva espacio para datos de 8 bits. El ejemplo siguiente crea una lista de bytes cuya dirección base es mis_datos_de_8bits inicializados con los valores 45 decimal, 50 hexadecimal, etc. mis_datos_de_8bits.byte 45, 0x50, 0x10, 0 .word reserva espacio para datos de 32 bits. El ejemplo siguiente crea una lista de bytes cuya dirección base es mis_datos_de_32bits inicilaizados con los valores siguientes separados por comas. mis_datos_de_32bits.word 0x00110011, 0xFF00FF00El .float reserva espacio para datos de punto flotante de 32 bits(simple precisión). mis_datos_de_fp32.float 3.14E0, 1.0, -1.0 .double reserva espacio para datos de punto flotante de 64 bits (doble precisión). mis_datos_de_fp32.double 3.140000001E-600, 1.0, -1.0

7 © 1997-2006 Prof. José Mª Foces Morán SPIM: Llamadas del sistema El simulador Spim incluye algunas llamadas del sistema compatibles con UNIX para imprimir datos en la ventana Console, leer datos desde Console, salir del programa, etc.

8 © 1997-2006 Prof. José Mª Foces Morán SPIM: Un programa de ejemplo. # Universidad de Leon, Dept. IEE, 1998 # Estructura y Tecnolog¡a de Computadores # Maquinas Electronicas # Jose M. Foces Moran..data # Aqui comienza el segmento de datos prompt1:.asciiz "Entre un entero: " # Cadena del mensaje 1.align 2 # Alinear el dato siguiente en # frontera de palabra. prompt2:.asciiz "\nEntre otro entero: " # Cadena del mensaje 2.align 2 resultado:.asciiz "\nLa suma es: " # Cadena del mensaje de resultado.text # Comienzo del segmento de codigo.globl main # La etiqueta main ha de ser global (se verá # desde cualquier fichero del proyecto). main: # Creamos main, el punto de entrada a nuestro # programa desde el kernel de Spim. Esto es un # convenio que hay que respetar. li $v0, 4 # la $a0, prompt1 # Imprimir mensaje 1 en la consola syscall # li $v0, 5 # syscall # Leer el primer entero desde la consola move $s0, $v0 # Salvar el primer entero en $s0 li $v0, 4 # la $a0, prompt2 # Imprimir mensaje 2 en consola syscall # li $v0, 5 # syscall # Leer el segundo entero move $s1, $v0 # Salvar el entero en $s1 add $s2, $s0, $s1 # hacer $s0 + $s1 --> $s2 li $v0, 4 la $a0, resultado syscall # Imprimir mensaje del resultado en consola li $v0,1 # Llevar el resultado a $a0 move $a0, $s2 # Imprimir $a0 en consola syscall


Descargar ppt "© 1997-2006 Prof. José Mª Foces Morán PCSpim: SPIM sobre Windows Ventana principal de PCSpim Consola: permite interactuar con el programa que está siendo."

Presentaciones similares


Anuncios Google