CI3815 - Asignación 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 2

Universidad Simón Bolívar

Departamento de Computación y
Tecnología de la Información
CI381 Organización del Computador

Asignación 1
Ambiente MARS
Objetivo
El objetivo de esta asignación es que el estudiante se familiarice con la programación MARS y con el lenguaje ensamblador
MIPS.

Parte 1: EL ensamblador MIPS y su simulador MARS

Esta asignación consiste en entender las facilidades que ofrece el ambiente MARS y el lenguaje ensamblador MIPS. Para ello
dispone de una versión en línea del manual de MARS.

Se puede descargar la versión 4.5 del ambiente MARS para Windows. En esa misma página encontrará documentación de
MARS.

Parte 2: Ejecución de un programa en MIPS usando el simulador

Dado el siguiente programa.

.data
.half 1
.byte 0
carnet: .asciiz “9315370” # Sustituir por el carnet (sin guion) de alguno de los
# integrantes del grupo

.word 1, 2
.word 0 0

.text
main:
li $t0 4

la $t1, carnet
la $t2, ing

loop: beqz $t0, end

lb $s0, 0($t1)
lb $s1 1($t1)
xor $s0, $s0 $s1
xor $s1, $s0 $s1
xor $s0, $s0 $s1

sb $s0, 0($t2)
sb $s1, 1(st2)

add $t0 -1
add $t1 2
add $t2, 2

bp: b loop

end:
li $v0 10
syscall

Ejecútelo y responda las siguientes preguntas:

1. ¿Cuántas instrucciones escritas por el programador tiene este programa? Cuente a partir de la instrucción li $t0 4.
2. ¿Cuántas instrucciones son generadas al cargar este programa en MARS? Cuente a partir de la instrucción li $t0 4.
3. ¿Cuántos bytes ocupa el programa en memoria a partir de la instrucción li $t0 4? Considerar sólo el área de texto.
4. ¿Qué actividad realiza el programa? Indique cómo llegó a esa conclusión.
5. ¿En qué dirección de memoria se cargó el primer y último dígito de su carnet?
6. Cargue nuevamente su programa y coloque un breakpoint en la dirección donde se encuentra la etiqueta bp. Ejecute
y dé una tabla indicando cómo varían los registros a lo largo de la ejecución del programa. Debe incluir todos los
registros cuyos valores sufran alguna variación en algún momento de la ejecución del programa.

Iteración 1 2 3 4 . . N
Reg1

RegM

Los registros deben ser identificados con sus nombres y su número de la siguiente forma: $at(r1), $v0(r2), etc.

También podría gustarte