Sunteți pe pagina 1din 8

UCSP Ciencias de la Computacin Arquitectura de Computadoras

2012-1 Yvn Jess Tpac Valdivia

PRCTICAS DE LABORATORIO LENGUAJE ENSAMBLADOR

1
Alumno(s):

Enunciado
Introduccin al ensamblador - MIPS
Nota:

Grupo: ___________

___________________________________________________ ___________________________________________________

I. Objetivos
Conocer la arquitectura de las instrucciones de procesadores MIPS e instruirse en el uso del simulador PCSPIM. Ejecutar un programa simple que muestre la cadena hello word en la consola (pantalla) del simulador Observar el funcionamiento de las instrucciones bsicas del ensamblador MIPS para introducir al alumno en el manejo de programas ms complejos.

II. Contenido terico


Lenguaje ensamblador: visin abstracta del hardware, instrucciones bsica del lenguaje ensamblador, formato de instrucciones, entrada y salida de datos. (clase 06) PCSPIM: simulador de procesador MIPS.

Nota.- Todos los alumnos antes de venir a laboratorio debern leer y estudiar las clases 06, Instrucciones MIPS, pudiendo usar como libro gua Arquitectura de Computadoras: de los microprocesadores a las supercomputadoras de Behrooz Parhami, Editorial McGraw Hill, ISBN-13: 978-970-10-6146-6 o ISBN-10: 970-10-6146-2

III. Equipos y materiales


Laboratorio: Laboratorio de Electrnica y Comunicaciones. PC Emulador PCSPIM

IV. Actividades
4.1 PCSPIM

UCSP Ciencias de la Computacin Arquitectura de Computadoras

2012-1 Yvn Jess Tpac Valdivia

SPIM es un simulador de lenguaje ensamblador que obtiene su nombre de invertir el trmino MIPS R2000/R3000. Este simulador tambin acepta las instrucciones MiniMIPS que son las usadas en el curso. Existen versiones para varios sistemas operativos con descarga gratuita: PCSPIM para sistema operativo Windows XSPIM para Macintosh con OS X SPIM para sistemas Unix o Linux

Los instaladores se pueden descargar desde: http://www.cs.wisc.edu/~larus/spim.html http://spimsimulator.sourceforge.net/ Instalar PCSPIM.ZIP si no se encuentra instalado en el computador, luego active el simulador. Es posible que ocurra la siguiente ventana:

Aceptar y luego deshabilitar el archivo de excepciones como se muestra a continuacin:

A continuacin aparecer la pantalla de inicio del simulador PCSPIM. 4.2 Partes del PCSPIM Cuando se activa el simulador el programa muestra dos ventanas. Una llamada Console (consola) que sirve para mostrar en pantalla los mensajes de salida que son producidos por los programas que corre el simulador. La otra ventana, llamada PCSPIM, contiene el simulador en s. La siguiente figura muestra las partes del simulador:

UCSP Ciencias de la Computacin Arquitectura de Computadoras

2012-1 Yvn Jess Tpac Valdivia

En la ventana PCSPIM aparecen cuatro tabs o regiones. La parte superior presenta el contenido del archivo de registros del MiniMIPS. La siguiente seccin est destinada a mostrar el segmento de texto del programa (en este momento en blanco) que son las instrucciones del programa. En el segmento de texto del programa cada una de las lneas sigue un formato: [direccin de memoria en hex] contenido de la instruccin hexa opcode y parmetros El siguiente tab presenta el segmento de datos y la pila del programa. Cada lnea, al igual que en el caso del segmento de texto, se compone de una direccin expresada en notacin hexadecimal y de cuatro palabras (o 16 bytes). El ltimo tab presenta una zona destinada a presentar los mensajes producidos por PCSPIM. Por defecto muestra los crditos del programa. El simulador, al igual que cualquier otro programa, posee una barra de mens que presenta las siguientes opciones: File Open, abre un archivo con cdigo ensamblador, lo carga y lo ensambla. Save Log, graba un archivo que contiene informacin sobre el estado (status) del simulador. Exit, termina el PCSpim.

Simulator Clear Registers, limpia o coloca todos los registros a cero (0x00000000). Reinitialize, coloca los registros y memoria a cero y reinicia el motor de simulacin. Reload , reinicia el simulador y vuelve a cargar el archivo actual. Go, corre o ejecuta el programa actual.

UCSP Ciencias de la Computacin Arquitectura de Computadoras

2012-1 Yvn Jess Tpac Valdivia

Break/Continue, si el programa est corriendo, coloca pausa. Si el programa est en pausa entonces continua su ejecucin. Single Step, ejecuta una sola instruccin. Multiple Step, ejecuta un nmero de pasos definidos por el usuario. Breakpoints..., muestra una caja de dialogo con los puntos de quiebre del programa (breakpoint). Set Value..., Muestra una caja de dialogo para colocar valores. Display symbol table, muestra la tabla de smbolos del simulador en una ventana. Settings..., muestra una caja de dialogo con la configuracin del simulador.

Windows Help Help Topics, ofrece un ndice con las opciones de ayuda en lnea. About, muestra la versin del simulador. Tile, coloca las ventanas de tal forma que no se superpongan. 1 Messages, muestra la ventana de mensajes. 2 Text Segment, muestra la ventana del segmento de texto. 3 Data Segment, muestra la ventana del segmento de datos. 4 Registers, Muestra la ventana de registros. 5 Console, muestra la ventana de la consola. Clear Console, elimina todo el texto de la ventana de consola. Toolbar, oculta o muestra la barra de herramientas. Statusbar, oculta o muestra la barra de estado.

4.3 Primer programa Vamos a hacer un ejecutar un programa bsico dentro de PCSPIM. El programa es el clsico programa hello world (hola mundo). Para realizar este programa en un lenguaje de alto nivel como JAVA o C tendramos que almacenar la cadena hola mundo en una variable y a continuacin llamar a una funcin de impresin de cadena (como printf). Un enfoque similar se sigue en el programa que hace uso de las instrucciones del MiniMIPS. En este caso las operaciones de entrada/salida hacen que PCSPIM abra la ventana de consola e imprima all los mensajes o lea valores desde el teclado (si la instruccin fuera de lectura de datos). Por tanto cualquier salida del programa aparece en la consola lo mismo que las entradas por teclado se leen desde la consola. El modo de entrada y salida en PCSPIM se realiza mediante una llamada al sistema o syscall. Una llamada al sistema es cono una llamada a procedimiento y necesita que se pase un argumento entero en el registro $v0 que est en el rango [1,10]. La siguiente tabla contiene las funciones asociadas con estas 10 posibilidades: Clase ($v0) Funcin Argumento Resultado ===================================================================================== Salida 1 Imprimir entero Entero en $a0 Despliega entero 2 Imprimir punto flotante Flotante en $f12 Despliega flotante 3 Imprimir doble flotante Doble flotante en $f12,$f13 Despliega doble flotante 4 Imprimir cadena Apuntador en $a0 Despliega cadena terminado en nulo Entrada 5 Leer entero Regresa entero en $v0 6 Leer punto flotante Regresa flotante en $f0 7 Leer doble flotante Regresa flotante en $f0, $f1 8 Leer cadena Apuntador en $a0, longitud Regresa cadena en el buffer del apuntador 9 Alojar memoria Numero de bytes en $a0 Apuntador a bloque de Memoria en $v0 Control 10 Salir del programa Termina programa

UCSP Ciencias de la Computacin Arquitectura de Computadoras

2012-1 Yvn Jess Tpac Valdivia

Para generar el programa hola mundo abra el bloc de notas de Windows y copie el siguiente texto en l:
## ## hello.a - prints out "hello world" ## ## a0 - points to the string ################################################# # # # text segment # # # ################################################# .text .globl __start __start: # execution starts here la $a0,str # put string address into a0 li $v0,4 # system call to print syscall # out a string li $v0,10 syscall

# au revoir...

################################################# # # # data segment # # # ################################################# .data .asciiz "hello world\n"

str:

## ## end of file hello.a

Ahora guarde el archivo bajo el nombre hello.asm en el directorio; C:\Archivos de programa\PCSPIM. Antes de efectuar la carga debemos mencionar que es importante que incluir al final del archivo un par de lneas en blanco, caso contrario saldr un error al momento de la carga. Note en el cdigo tambin la presencia de unas directivas de compilacin que le indican a PCSPIM cules son los segmentos que conforman el programa, esto es texto y data. Para efectuar la carga primero vaya al men Simulador elija Reinitialize. Vera como la ventana correspondiente al segmento de texto del programa aparece ahora en blanco. A continuacin vaya al men File y elija open, busque el archivo hello.asm. Si todo sale bien vera que en la ventana del segmento de texto tiene el programa y este est a partir de la posicin 0x00400000. Note que el cdigo que est en el PCSPIM no es igual que el cdigo que est en el archivo hello.asm. Eso se debe al uso de pseudo instrucciones (que se vern en clase). Para correr el programa se puede usar la opcin Go del men Simulator. Observe como es que el programa muestra en la pantalla el mensaje Hello world Vuelva a reinicializar el simulador, cargue nuevamente el programa y ahora elija la opcin Step del men Simulator. Continu hasta que el programa termine.

UCSP Ciencias de la Computacin Arquitectura de Computadoras

2012-1 Yvn Jess Tpac Valdivia

El simulador tiene otras opciones que permiten la ejecucin con puntos de quiebre y se puede apreciar como la ejecucin de cada instruccin modifica el contenido de los registros de acuerdo a la lgica del programa

V. Tarea en laboratorio
Ejercicio 5.1 Establezca una relacin entre la figura siguiente y lo que ha visto en el simulador.
Hex address
00000000 00400000

Reserved

1 M words Text segment 63 M words

Program
10000000 10008000 1000ffff

Addressable with 16-bit signed offset

Static data Data segment Dynamic data 448 M words

$gp $28 $29 $30 $sp $fp

Stack
7ffffffc

Stack segment

Second half of address space reserved for memory-mapped I/O

Ejercicio 5.2 Recuerde la definicin de Pseudo instruccin (clase 08) y explique porque el cdigo que se presenta en el archivo .asm es diferente del segmento de cdigo que muestra el PCSPIM. Las respuestas deben estar en un papel que ser entregado al final de la sesin prctica al jefe de prcticas.

UCSP Ciencias de la Computacin Arquitectura de Computadoras

2012-1 Yvn Jess Tpac Valdivia

VI. Tarea asignada


Ejercicio 5.1 Con ayuda del bloc de notas cree un nuevo archivo inserte el cdigo que se muestra en lneas abajo y grbelo bajo el nombre length.asm en el directorio C:\Archivos de programa\PCSPIM.
## length.a - prints out the length of character ## string "str". ## ## t0 - holds each byte from string in turn ## t1 - contains count of characters ## t2 - points to the string ## ################################################# # # # text segment # # # ################################################# .text .globl __start __start: # execution starts here la $t2,str # t2 points to the string li $t1,0 # t1 holds the count nextCh: lb $t0,($t2) # get a byte from string beqz $t0,strEnd # zero means end of string add $t1,$t1,1 # increment count add $t2,1 # move pointer one character j nextCh # go round the loop again strEnd: la $a0,ans li $v0,4 syscall move $a0,$t1 li $v0,1 syscall la $a0,endl li $v0,4 syscall li $v0,10 syscall

# system call to print # out a message

# system call to print # out the length worked out

# system call to print # out a newline

# au revoir...

################################################# # # # data segment # # # ################################################# .data str: .asciiz "hello world" ans: .asciiz "Length is " endl: .asciiz "\n" ## ## end of file length.a

Ejercicio 5.2

UCSP Ciencias de la Computacin Arquitectura de Computadoras

2012-1 Yvn Jess Tpac Valdivia

Simule el programa haciendo uso de las opciones que se encuentran en Simulator. Experimente cmo funciona el programa. Fjese en la ventana de datos para observar cmo se van modificando los valores del archivo de registros hasta encontrar la respuesta deseada. Ejercicio 5.3 Con ayuda del help, las clases 06 a 08 e informacin que encuentre en Internet, estudiar cada una de las instrucciones y directivas de compilacin que aparecen en el programa. Haga un resumen de no ms de una pgina indicando sus observaciones, puede incluir tambin un diagrama de flujo. Las tres preguntas deben responderse y presentarse en un informe en la siguiente clase/sesin prctica.

S-ar putea să vă placă și