Untitled
unknown
plain_text
2 years ago
1.4 kB
4
Indexable
# a = t1 # b = t2 # c = t3 # d = t4 main: la $a0,label_insert_a #set A parameter jal print li $v0,5 syscall move $t1,$v0 beqz $t1,invalid_param la $a0,label_insert_b #set B parameter jal print li $v0,5 syscall move $t2,$v0 la $a0,label_insert_c #set C parameter jal print li $v0,5 syscall move $t3,$v0 #calc d parameter mul $t3,$t1,0x4 #calc 4*a = t3 mult $t2,$t2 #calc b*b = LO msub $t3,$t2 # lo - 4*a*c la $a0,label_eq_d #print d jal print li $v0,1 mflo $t4 move $a0,$t4 syscall la $a0,new_line jal print beqz $t7,delta_bigger_eq_zero bltz $t7,delta_bigger_less_zero invalid_param: la $a0,invalid_a jal print j finish delta_bigger_than_zero: mul $t3,$t1,0x2 mul $t2,$t2,-1 div $t2,$t3 mflo $a0 jal print j finish delta_bigger_eq_zero: mtc1 $t4,$f0 mtc1 $t1,$f1 mtc1 $t2,$f2 mtc1 $t3,$f3 sqrt.s $f0,$f0 # sqrt(d) l.s $f10,-1 mul.s $f2,$f2,$f10 add.s $f5,$f2,$f0 # f5 = (-b+sqrt(d)) sub.s $f6,$f2,$f0 # f6 = (-b-sqrt(d)) l.s $f10,2 mul.s $f11,$f11,$f10 div.s $f5,$f5,$f11 div.s $f6,$f6,$f11 j finish delta_bigger_less_zero: j finish print: li $v0,4 syscall jr $ra finish: .data label_insert_a: .asciiz "Insert a:\n" invalid_a: .asciiz "a=0 its linear equalization\n" label_insert_b: .asciiz "Insert b:\n" label_insert_c: .asciiz "Insert c:\n" new_line: .asciiz "\n" label_eq_d: .asciiz "d=" no_solutions: .asciiz "there is no solutions"
Editor is loading...