Está en la página 1de 4

UNIVERSIDAD NACIONAL DE INGENIERÍA Ciclo Académico: 2023-1

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Fecha: 08/07/23


DEPARTAMENTOS ACADÉMICOS Duración: 1 hora

CURSO: INTRODUCCIÓN A LA COMPUTACIÓN COD.CURSO: BIC01

TIPO DE PRUEBA: PRACTICA No. 5 Ex. PARCIAL EX. FINAL EX. SUST.

1. Escriba un programa utilizando el Simulador MARS para MIPS que permita calcular la suma de los
10 primeros números pares en la pantalla. (6 ptos).

.data
msg: .asciiz "La suma de los 10 primeros numeros pares es: "
.text
.globl main
main:
li $t0,0
li $t1,0
li $t2,0
bucle:
add $t1, $t1, $t2
addi $t0, $t0, 1
beq $t0, 10,fin
addi $t2, $t2, 2
j bucle
fin:
la $a0, msg
li $v0,4
syscall
move $a0, $t1
li $v0,1
syscall
li $v0, 10
syscall

2. Escriba un programa utilizando el Simulador MARS para MIPS que permita crear un vector para
guardar en pila y extraer (6 ptos).

.data
vec: .word 299,45,3,1,6 #declaro el vector

.text
.globl main
main:
li $t0,0
li $t4,0
la $t1,vec

bucle: # va reservar espacio en la pila y guardar todos los elementos luego todos los elementos
beq $t0,5,imprimirp
lw $t2,0($t1) #se guarda la direccion en t2
addi $sp,$sp,-4 #se necesita reservar un espacio en la pila
sw $t2,0($sp) #la primera posicion del vector se va guardar en la primera posicion de la pila
addi $t1, $t1, 4
addi $t0,$t0,1
j bucle

imprimirp:
beq $t4,5,fin
lw $t7,0($sp) #cargamos la primer posicio de la pila en t7
li $v0,1
move $a0,$t7
syscall
addi $t4,$t4,1
addi $sp,$sp,4 #incrementa en 4 la pila
j imprimirp

fin:
li $v0,10
syscall
jr $ra

3. Escriba un programa utilizando el Simulador MARS para MIPS que permita crea e imprimir un
matriz de 5X5. (8 ptos).

.data
matrix: .space 100

.text
.globl main
main:

li $t0, 0
li $t1, 5
li $t2, 5
li $t3, 4
li $t4, 0
li $t5, 0

loop_outer:

bge $t4, $t1, exit

li $t5, 0

loop_inner:

bge $t5, $t2, next_row

mul $t6, $t4, $t2


add $t6, $t6, $t5
mul $t6, $t6, $t3
la $t7, matrix
add $t7, $t7, $t6

sw $t0, 0($t7)

addi $t5, $t5, 1

addi $t0, $t0, 1

j loop_inner

next_row:

addi $t4, $t4, 1

j loop_outer

exit:

li $v0, 4
la $a0, message
syscall

li $t4, 0

print_outer:

bge $t4, $t1, print_exit

li $t5, 0

print_inner:

bge $t5, $t2, print_next_row

mul $t6, $t4, $t2


add $t6, $t6, $t5
mul $t6, $t6, $t3
la $t7, matrix
add $t7, $t7, $t6

lw $a0, 0($t7)
li $v0, 1
syscall

li $a0, 32
li $v0, 11
syscall

addi $t5, $t5, 1

j print_inner

print_next_row:
li $a0, 10
li $v0, 11
syscall

addi $t4, $t4, 1

j print_outer

print_exit:

li $v0, 10
syscall

.data
message: .asciiz "Matriz:\n"

También podría gustarte