Title: Laboratorio de Organizaci
1Laboratorio de Organización del Computador
2Cómo nos podemos comunicar con un computador
Ensamblador
Add A, B
Hexadecimal
8CA0
Binario
1000110010100000
Electricidad
3SPIM
- Es un simulador que ejecuta programas en lenguaje
ensamblador escritos para procesadores que
implementan la arquitectura MIPS32. - MIPS-SPIM
- Por ser un simulador es más lento que una máquina
real. - http//www.cs.wisc.edu/larus/spim.html (versión
7.2.1)
4SPIM
- Por qué usar un simulador??
- La arquitectura de los PCs que usamos es bastante
más compleja hoy en día cache, pipelines
complejos, predicciones, etc. - Los procesadores MIPS son más fáciles de entender
y programar. Son una especie de máquina RISC
simple. - Ofrecen un mejor ambiente para programación en
lenguaje ensamblador detectan mayor cantidad de
errores, proveen una mejor interfaz,
pseudo-instrucciones.
5Objetivo del Laboratorio
- Que al final del curso los alumnos hayan
adquirido los principales conceptos de
programación en lenguaje ensamblador. - Se realizarán los programas utilizando el
simulador SPIM.
6Arquitectura de SPIM
1. El procesador MIPS simula una unidad de
procesamiento de enteros (CPU) Y dos
co-procesadores para el manejo de números punto
flotante e interrupciones 2. Es una
arquitectura load- Store, sólo estas dos
Instrucciones acceden a la memoria. El resto de
operaciones sólo actúan sobre los registros
7Registros de propósito de SPIM
8Mapa de la Memoria de SPIM
9Sintaxis
- Comentarios comienzan con
- Los identificadores son una secuencia de
caracteres alfanuméricos, underscores y puntos.
Nunca comienzan con un número. - Las etiquetas van al comienzo de la lineaseguidas
por - .data
- Item .word 1
10Sintáxis
- Los números están por defecto en base 10 a menos
que estén precedidos por 0x, en cuyo caso se
trata de un número hexadecimal. - Los strings van encerrados en doble comillas.
11Sintáxis
- SPIM también soporta un conjunto de directivas
para el lenguaje ensamblador. Veremos sólo
algunas - .ascii str almacena el string str en memori pero
no termina en 0 - .asciiz str el string termina en 0
- .data los items que siguen se cargan en el
segmento de datos. - .text los items siguientes se colocan en el
segmento de texto. Pueden sólo ser instrucciones - .byte B1, ..Bn carga n valores en bytes
consecutivos de la memoria. - .space n asigna n bytes de espacio en el
segmento actual - .globl sym declara que la etiqueta sym es global
y se puede referenciar desde otros archivos.
12Principales Tipos de Instrucciones
- Aritméticasadd, sub.
- Lógicas or, and, ..
- De manipulación de bits
- Instrucciones de salto jal, branch,etc
- Load y Store
- Movimiento de datos
- Instrucciones para la manipulación de datos en
punto flotante. - Instrucciones para el manejo de interrupciones.
13 Programa Ejemplo .data declaración de
variables mensaje_1 .asciiz " Introduzca un
entero \n" mensaje_2 .asciiz " El resultado de
la suma es " .text .globl main main
li v0, 4 system call para imprimir un string
v0 4 la a0, mensaje_1 se coloca
la direccion del string en a0. pseudo
instruccion syscall li v0,
5 system call para leer un entero v0 5
syscall move 8, v0
deja lo leído en 8 ori 9, 0, 3
coloca el número 3 en el registro 9
add t0, 8, 9 coloca la suma de 8 y
9 en t0 li v0, 4
la a0, mensaje_2
syscall li v0, 1
Escribir un entero en la cónsola
move a0, t0 syscall END OF
PROGRAM
14(No Transcript)
15Ejemplo 2
Programa Ejemplo .data declaración de
variables losbytes .byte 1,2,3 laspalabras
.word 1,2,3 espacios .space 4 mensaje_1 .asciiz
"Hola" .text .globl main main li v0,
4 system call para imprimir un string v0 4
la a0, mensaje_1 se coloca la
direccion del string en a0 syscall
END OF PROGRAM
16Ejercicio
- Escriba en un editor el programa que se acaba de
explicar - Cárguelo en SPIM y ejecútelo.