Está en la página 1de 2

16-11238 Blanyer Vielma

Asignación 1
Ambiente MARS

1. ¿Cuántas instrucciones escritas por el programador tiene este programa? Cuente a partir
de la instrucción li $t0 4.

El programa consta de 17 instrucciones dadas por el programador las cuales son las
siguientes:

Numero Numero de Instrucción


Línea
1 12: li $t0, 4
2 14: la $t1, carnet
3 15: la $t2, ing
4 17: loop: beqz $t0, end
5 19: lb $s0, 0($t1)
6 20: lb $s1 1($t1)
7 22: xor $s0, $s0 $s1
8 23: xor $s1, $s0 $s1
9 24: xor $s0, $s0 $s1
10 26: sb $s0, 0($t2)
11 27: sb $s1, 1($t2)
12 29: add $t0, $t0, -1
13 30: add $t1, $t1, 2
14 31: add $t2, $t2, 2
15 33: bp: b loop
16 36: li $v0 10
17 37: syscall

2. ¿Cuántas instrucciones son generadas al cargar este programa en MARS? Cuente a partir
de la instrucción li $t0 4.

Son generadas 19 instrucciones en total. Las 17 que salen anteriormente y después


de las líneas 14 y 15 son generadas dos más, “ori $9, $1 0x00000003“ y
“ori $10, $1, 0x00000014” respectivamente.
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.

76 Bits = 9,5 bytes. Estamos considerando solo el espacio de memoria del área texto, los
cuales son desde el 0x00400000 hasta el 0x00400044

4. ¿Qué actividad realiza el programa? Indique cómo llegó a esa conclusión.

Invierte los pares de números, 1611238 lo pasa a 611132\08 en otra ubicación de


memoria, manteniendo lo dos valores. Eso fue lo que concluí observando el área
de datos y colocándolo en ASCII. Aun no me familiarizo del todo con mips y mars.

5. ¿En qué dirección de memoria se cargó el primer y último dígito de su carnet?

El primer digito en la 0x10010000 y el ultimo digito en 0x10010006

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.

ITERACION
1 2 3 4
REGISTROS
$at(r1) 0x10010000 0x10010000 0x10010000 0x10010000
$t0(r8) 0x00000003 0x00000002 0x00000001 0x00000000
$t1(r9) 0x10010005 0x10010007 0x10010009 0x1001000b
$t2(r10) 0x10010016 0x10010018 0x1001001a 0x1001001c
$s0(r16) 0x00000036 0x00000031 0x00000033 0x00000000
$s1(r17) 0x00000031 0x00000031 0x00000032 0x00000038
$gp(r28) 0x10008000 0x10008000 0x10008000 0x10008000
$sp(r29) 0x7fffeffc 0x7fffeffc 0x7fffeffc 0x7fffeffc

También podría gustarte