Documentos de Académico
Documentos de Profesional
Documentos de Cultura
.data
numero2: .word 16
.space 8
.text
main: lw $t0,numero1($0)
lw $t1,numero2($0)
mfhi $t0
mflo $t1
DIVISON 1
#Pide al usuario 2 numero y luego lo divides
.data
#Colocar los mensajes para el usuario en etiquetas que se puedan comprender. Empieza la sección de
datos
#Imprime pantalla
li $v0, 4 #se imprime cadena de texto con codigo 4, es decir sel servicio 4 se usa para imprimir
caracteres
li $v0, 4
syscall
#El número se mueve al registro $t0 debido a que $v0 tiene dato almacenado
li $v0, 4
syscall
#El número se mueve al registro $t1 debido a que $v0 tiene dato almacenado
li $v0, 4
li $v0, 4
syscall
DIVISION ALMACENADA
.data #Inicio del segmento de datos, se crea antes que se ejecuta el programa
.ascii "Apellido:\n"
.ascii "Direccion:\n"
.ascii "Ruc:\n"
.text
main:
syscall #Termina
DIVISION GOMEZ
.data
n1: .word 20
n2: .word 15
n3: .word 10
rpt: .space 4
.text
.globl s
s:
lw $t0 n1
lw $t1 n2
lw $t2 n3
la $a0 mensaje
li $v0 4
syscall
li $v0 1
syscall
DIVISON MOTIVADOR
.data
saludo: .asciiz "Bienvenido, antes de comenzar recomendamos realizar solo divisiones exactas,
en caso de realizar una division inexacta el programa solo arrojara el cociente de la misma
como respuesta obviando el residuo\n"
.text
li $v0, 4
la $a0, saludo
syscall
li $v0, 4
la $a0, valor1
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, valor2
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, resultado
syscall
li $v0, 1
syscall
li $v0, 4
la $a0, fin
syscall
li $v0, 10
syscall
EDAD MAYOR
.text
.globl main
main:
li $v0,4
la $a0,msg1
syscall
li $v0,5
syscall
move $t0,$v0
li $v0,4
la $a0,msg2
syscall
li $v0,5
syscall
move $t1,$v0
bgt $t0,$t1,mayor1
bgt $t1,$t0,mayor2
mayor1:
li $v0,4
la $a0,msg3
syscall
li $v0,1
move $a0,$t0
syscall
j fin
mayor2:
li $v0,4
la $a0,msg3
syscall
li $v0,1
move $a0,$t1
syscall
j fin
fin:
li $v0,4
la $a0,msg4
syscall
.data
IMPRIMIR PANTALLA
.data #Inicio del segmento de datos, se crea antes que se ejecuta el programa
.ascii "Apellido:\n"
.ascii "Direccion:\n"
.ascii "Ruc:\n"
.text
main:
syscall #Termina
PROMEDIO MOTIVADORT
.data
#Colocar los mensajes para el usuario en etiquetas que se puedan comprender. Empieza la
sección de datos
saludo: .asciiz "Bienvenido cachimbo\n"
#Imprime pantalla
li $v0, 4 #se imprime cadena de texto con codigo 4, es decir sel servicio 4 se usa para
imprimir caracteres
li $v0, 4
syscall
#El número se mueve al registro $t0 debido a que $v0 tiene dato almacenado
li $v0, 4
syscall
#El número se mueve al registro $t1 debido a que $v0 tiene dato almacenado
li $v0, 4
syscall
#El número se mueve al registro $t2 debido a que $v0 tiene dato almacenado
div $t5,$t4,3
li $v0, 4
li $v0, 4
syscall
syscall
SOLICITO DIVISOR
SUMA DE CUADRADOS
.data
msg01: .asciiz "Cantidad de números a leer: "
msg02: .asciiz "Introducir número: "
msg03: .asciiz "El resultado es: "
.text
main:
# imprimir mensaje "Cantidad de números a leer: "...
la $a0 msg01
li $v0 4
syscall
# leer cantidad de números a leer
li $v0 5
syscall
move $t0 $v0
# si cantidad de números a leer es cero, terminar.
beqz $t0 f01
# bucle de lectura y cálculo.
# $t1: contador de números
# $t2: resultado parcial
li $t1 0
li $t2 0
b01:
# imprimir mensaje "Introducir número: "
la $a0 msg02
li $v0 4
syscall
# leer número
li $v0 5
syscall
# cálculo del cuadrado y suma parcial
mul $v0 $v0 $v0
add $t2 $t2 $v0
# bucle
SUMA DE FACTORIALES
# S = 1! + 2! + 3! + 4! + ..... + n!
.text
.globl main
main:
li $v0,4
la $a0,msg1
syscall
li $v0,5
syscall
move $t0,$v0
lb $a0,s
move $t1,$a0
lb $a0,i
move $t2,$a0
lb $a0,fact
move $t3,$a0
lb $a0,k
move $t4,$a0
Bucle:
bgt $t2,$t0,fin
factorial:
bgt $t4,$t2,finFact
mul $t3,$t3,$t4
addi $t4,$t4,1
j factorial
finFact:
add $t1,$t1,$t3
addi $t2,$t2,1
j Bucle
fin:
li $v0,4
la $a0,msg2
syscall
li $v0,1
move $a0,$t1
syscall
.data
s: .byte 0
i: .byte 1
k: .byte 1
fact: .byte 1
SUMA DE NUMEROS
# S = 1 + 2 + 3 + 4 + ..... + n
.text
.globl main
main:
li $v0,4
la $a0,msg1
syscall
li $v0,5
syscall
move $t0,$v0
lb $a0,s
move $t1,$a0
lb $a0,i
move $t2,$a0
Bucle:
bgt $t2,$t0,fin
add $t1,$t1,$t2
addi $t2,$t2,1
j Bucle
fin:
li $v0,4
la $a0,msg2
syscall
li $v0,1
move $a0,$t1
syscall
.data
s: .byte 0
i: .byte 1
EJERCICIOS FACTORIAL
.text
.globl main
main:
li $v0,4
la $a0,msg1
syscall
li $v0,5
syscall
move $t0,$v0
lb $a0,fact
move $t1,$a0
lb $a0,i
move $t2,$a0
Bucle:
bgt $t2,$t0,fin
mul $t1,$t1,$t2
addi $t2,$t2,1
j Bucle
fin:
li $v0,4
la $a0,msg2
syscall
li $v0,1
move $a0,$t1
syscall
.data
fact: .byte 1
i: .byte 1
DIVISION DE 2 NUMEROS
.data
.text
li $v0, 4
la $a0, msg1
syscall
li $v0, 5
syscall
move $t1,$v0
li $v0, 4
la $a0, msg2
syscall
li $v0, 5
syscall
move $t2,$v0
li $v0, 4
la $a0, msg3
syscall
li $v0, 1
move $a0,$s0
syscall
.text
li $v0, 4
la $a0, msg1
syscall
li $v0, 4
la $a0, msg2
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, msg3
syscall
li $v0, 5
syscall
la $a0, msg4
syscall
li $v0, 5
syscall
li $v0 , 4
la $a0, msg5
syscall
li $v0, 5
syscall
li $v0 , 4
la $a0, msg6
syscall
li $v0, 1
move $a0,$s0
syscall
li $v0, 10
syscall
MULTIPLICAON DE 6 NUMEROS
.data
msg1: .asciiz " Bienvenido:"
.text
li $v0, 4
la $a0, msg1
syscall
li $v0, 4
la $a0, msg8
syscall
li $v0, 4
la $a0, msg2
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, msg3
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, msg4
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, msg5
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, msg6
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, msg7
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, msg9
syscall
li $v0,1
syscall
li $v0,10
syscall
MUNTIPLICAONN DE 2 NUMEROS
.data
.text
la $a0, msg1
li $v0, 4
syscall
li $v0, 5
syscall
move $t1,$v0
la $a0, msg2
li $v0, 4
syscall
li $v0, 5
syscall
move $t2,$v0
mul $t3,$t2,$t1
la $a0, msg3
li $v0, 4
syscall
move $a0,$t3
li $v0, 1
syscall
li $v0, 10
syscall
MUNTIPLCIAONES
.data
.text
la $a0, num1
li $v0, 4
syscall
li $v0, 5
syscall
move $t1,$v0
la $a0, num2
li $v0, 4
syscall
li $v0, 5
syscall
move $t2,$v0
la $a0, num3
li $v0, 4
syscall
li $v0, 5
syscall
move $t3,$v0
mul $t0,$t1,$t2
mul $t4,$t0,$t3
la $a0, resultado
li $v0, 4
syscall
move $a0,$t4
li $v0, 1
syscall
li $v0, 10
syscall
.data
.text
la $a0, num1
li $v0, 4
syscall
li $v0, 5
syscall
move $t1,$v0
la $a0, num2
li $v0, 4
syscall
li $v0, 5
syscall
move $t2,$v0
la $a0, num3
li $v0, 4
syscall
li $v0, 5
syscall
move $t3,$v0
mul $t0,$t1,$t2
mul $t4,$t0,$t3
la $a0, resultado
li $v0, 4
syscall
move $a0,$t4
li $v0, 1
syscall
li $v0, 10
syscall
SUMA
.data
#Imprime pantalla
li $v0, 4
la $a0, saludo
syscall
li $v0, 4
la $a0, pedirnumero1
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, pedirnumero2
syscall
li $v0, 5
syscall
li $v0, 4
la $a0, resultado
li $v0, 4
la $a0, despedida
syscall
li $v0, 10
syscall
SISGTEMA DE MATRICULA
.data
#Colocar los mensajes para el usuario en etiquetas que se puedan comprender. Empieza la
sección de datos
contenedor: .space 40
#Imprime pantalla
li $v0, 4
la $a0, saludo
li $v0, 4
la $a0,contenedor
li $a1,40
syscall
li $v0, 4
li $v0,8
la $a0,contenedor
li $a1,40
syscall
li $v0, 4
li $v0,8
la $a0,contenedor
li $a1,40
syscall
li $v0, 4
syscall
#Se muestra el mensaje de despedida
li $v0, 4
syscall
.text
.globl main
main:
lw $t0,S
lw $t1, cont
jal SumaCuadradosYCubicos
move $t6,$a0
li $v0,4
la $a0,msg2
syscall
li $v0,1
move $a0,$t6
syscall
li $v0,10
syscall
SumaCuadradosYCubicos:
li $v0,4
la $a0,msg1
syscall
li $v0,5
syscall
move $t2,$v0
Mientras:
bgt $t1,$t2,Aea
mul $t3,$t1,$t1
div $t4,$t1,2
mfhi $t5
beq $t5,0,Par
beq $t5,1,Impar
Par:
mul $t3,$t3,$t1
add $t0,$t0,$t3
add $t1,$t1,1
j Mientras
Impar:
add $t0,$t0,$t3
add $t1,$t1,1
j Mientras
Aea:
move $a0,$t0
jr $ra
.data
cont: .word 1
S: .word 0