You are on page 1of 2

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN

Facultad de Ingeniera
E.A.P. Ingeniera en Informtica y Sistemas
Curso: Arquitectura de Computadoras

PRCTICA N 2: OPERACIONES BSICAS CON MIPS


OBJETIVOS

Familiarizacin con la programacin de operaciones bsicas en ensamblador y la representacin de


distintos tipos de datos utilizando el ensamblador del MIPS.

OPERACIONES ARITMTICAS BSICAS


MIPS es una mquina de arquitectura carga-almacenamiento: para usar un dato almacenado en memoria,
primero hay que pasarlo a un registro.
Las operaciones aritmticas bsicas en MIPS se caracterizan por:
Utilizar tres registros (2 para los operandos y 1 para el resultado).
Sintaxis: operacion resultado op1 op2
El ltimo de los operandos puede ser una constante de 16 bits (inmediato).
Ejercicio 1.
Suma:
Cdigo C:
Int a, b, c;
c=a+b;
Cdigo MIPS:
# Suponiendo que los datos a, b, c
# estn asignados a los registros
# $s0, $s1, $s2 respectivamente: add $s2, $s0, $s1 # $s2 = $s0 + $s1
.globl main # Directiva de etiqueta global
.text
li $v0, 5
syscall
move $t0,$v0 #a
li $v0, 5
syscall
move $t1, $v0 #b
main: #etiqueta main
addu $t2, $t0, $t1
move $a0, $t2
li $v0,1
syscall
li $v0,10 # Llamada al sistema de tipo "exit"
syscall
Si solo podemos sumar dos registros en cada instruccin, cmo hacemos operaciones ms complicadas?
Usando la prctica anterior sume dos nmeros y ms de 4 nmeros
Ejercicio 2.
Resta:
Cdigo C:
int a, b, c, d, e;
a = ( b + c ) ( d + e );
Cdigo MIPS:
# Suponiendo que los datos a, b, c, d, e
# estn asignados a los registros
# $s0, $s1, $s2, $s3 y $s4, respectivamente:
add $t0, $s1, $s2 # $t0 = $s1 + $s2
add $t1, $s3, $s4 # $t1 = $s3 + $s4
sub $s0, $t0, $t1 # $s0 = $t0 - $t1

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN


Facultad de Ingeniera
E.A.P. Ingeniera en Informtica y Sistemas
Curso: Arquitectura de Computadoras
Modificar el programa MIPS anterior para evitar el uso de los registros temporales $t0 y $t1
Ejercicio 3: (Adicional)
Dado el siguiente ejemplo de programa ensamblador:
.data
dato: .byte 3 #inicializo una posicin de memoria a 3
.text
.globl main # debe ser global
main: lw $t0,dato($0)
Indica las etiquetas, directivas y comentarios que aparecen en el mismo

You might also like