Skip to content

Instantly share code, notes, and snippets.

@ecomaikgolf
Created May 23, 2019 21:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ecomaikgolf/003a726ba895712203f042aad52f9c38 to your computer and use it in GitHub Desktop.
Save ecomaikgolf/003a726ba895712203f042aad52f9c38 to your computer and use it in GitHub Desktop.
El examen que es de algo de contabilidad. 2019
# Ernesto Martínez García
.data
text1: .asciiz "\n1. Euro - Libra\n"
text2: .asciiz "2. Euro - Dólar\n"
text3: .asciiz "3. Euro - Yuan\n"
libra: .float 0.87
dolar: .float 1.12
yuan: .float 7.71
ingresos: .float 65.2, 87.9, 24.6, 23.1, 90.2
gastos: .float 12.3, 9.8, 2, 31.2, 1.2
.text
#
# MAIN
#
li $t0, 5
la $t1, ingresos
jal obtainSum
mov.s $f1, $f2
li $t0, 5
la $t1, gastos
jal obtainSum
sub.s $f3, $f1, $f2
mov.s $f12, $f3
li $v0, 2
syscall
li $v0, 11
li $a0, ' '
syscall
jal mostrarDatos
jal cambioMoneda
li $v0, 10
syscall
#
# FUNCIONES
#
# Parámetros:
# $t0 = array size
# $t1 = array mem address
# Return:
# $f2 = total sum
obtainSum:
li $t3, 0
li $t2, 0
mtc1 $t2, $f2
cvt.s.w $f2, $f2
for:
beq $t0, $t3, end
lwc1 $f4, ($t1)
add.s $f2, $f2, $f4
addi $t1, $t1, 4
addi $t3, $t3, 1
j for
end:
jr $ra
# Parámetros:
# f1 = ingresos
# f2 = gastos
# f3 = beneficios
mostrarDatos:
li $t0, 0
mtc1 $t0, $f4
cvt.s.w $f4, $f4
c.lt.s $f3, $f4
bc1f positivo
mov.s $f12, $f2
li $v0, 2
syscall
li $v0, 11
li $a0, ' '
syscall
mov.s $f12, $f1
li $v0, 2
syscall
j end2
positivo:
mov.s $f12, $f1
li $v0, 2
syscall
li $v0, 11
li $a0, ' '
syscall
mov.s $f12, $f2
li $v0, 2
syscall
j end2
end2:
jr $ra
# Parámetros
# f3 = beneficios
# Return:
# f3 = beneficios * moneda
cambioMoneda:
la $a0, text1
li $v0, 4
syscall
la $a0, text2
li $v0, 4
syscall
la $a0, text3
li $v0, 4
syscall
li $v0, 5
syscall
move $t0, $v0
la $a0, libra
l.s $f1, ($a0)
la $a0, dolar
l.s $f2, ($a0)
la $a0, yuan
l.s $f4, ($a0)
beq $t0, 1, libraF
beq $t0, 2, dolarF
beq $t0, 3, yuanF
j end3
libraF:
mul.s $f3, $f3, $f1
j end3
dolarF:
mul.s $f3, $f3, $f2
j end3
yuanF:
mul.s $f3, $f3, $f4
j end3
end3:
li $v0, 11
li $a0, ' '
syscall
mov.s $f12, $f3
li $v0, 2
syscall
jr $ra
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment