Created
May 23, 2019 21:52
-
-
Save ecomaikgolf/003a726ba895712203f042aad52f9c38 to your computer and use it in GitHub Desktop.
El examen que es de algo de contabilidad. 2019
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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