Hola.
Hace poco tuve que hacer una practica en asm, sabiendo que existen muchas maneras de realizarlo, basicamente este codigo funciona con PCSPIM en windows o xSpim en linux, espero que sea de ayuda para ustedes.
.data #;valores que voy a poner…
str1: .asciiz “¿Qué tabla de multiplicar deseas ver?: ”
str2: .asciiz ” = ”
str3: .asciiz ” x ”
str4: .asciiz “\n\nFin del programa, Adios . . . \n”
str5: .asciiz “\n”
cr: .byte 13,10,0
.textmain: #;inicio del programa
jal imprime_tabla #; manda a llamar el metodo imprime tabla….
imprime_tabla : #;metodo
li $v0, 4
la $a0, str1
syscall
li $v0, 5
syscall
move $t0, $v0li $t1, 1 #;inicializo a $t1 a 1
m1: bge $t1, 11, m3 #;Compara si $t1 es mayor o igual a 11 si lo es salta a etiqueta m3move $a0, $t0
li $v0, 1
syscallli $v0, 4 #;imprimir cadena str3
la $a0, str3
syscallmove $a0, $t1
li $v0, 1
syscallli $v0, 4
la $a0, str2
syscallmult $t0, $t1 #;realiza la multiplicación
mflo $t2 #;Arroja resultado en $t2
move $a0, $t2 #;Se mueve resultado a $a0 para poder imprimirlo
li $v0, 1 #;Servicio 1 para imprimir resultado
syscallli $v0, 4
la $a0, str5
syscallm2: addi $t1, $t1, 1 #;incremento
b m1 #;saltar a etiqueta m1m3: li $v0, 4
la $a0, str4
syscall
jr $31 #; fin del main
Saludos.
lol