.data main_regs: .word 0,0,0,0,0,0,0,0 main_return_addr: .word 0 a_1: .word 0 arr_1: .word 0,0,0,0,0 len_1: .word 0 temp_1: .word 0 remainder_1: .word 0 ten_power_1: .word 0 sum_1: .word 0 divisor_1: .word 0 i_1: .word 0 j_1: .word 0 f1_1: .word 0 f2_1: .word 0 .text main: li $t0, 21 sw $t0, a_1 label0: li $t0, 1 sw $t0, f1_1 sw $t0, f2_1 label2: lw $t0, f2_1 lw $t1, a_1 slt $t2, $t0, $t1 beqz $t2, label3 lw $t0, f1_1 lw $t1, f2_1 add $t2, $t0, $t1 sw $t2, f2_1 lw $t0, f2_1 lw $t1, f1_1 sub $t2, $t0, $t1 sw $t2, f1_1 lw $t0, f2_1 lw $t1, a_1 seq $t2, $t0, $t1 beqz $t2, label4 lw $t0, a_1 li $v0, 1 move $a0, $t0 syscall b label3 label4: b label2 label3: lw $t0, a_1 addi $t2, $t0, 1 sw $t2, a_1 lw $t0, a_1 li $t1, 100 seq $t2, $t0, $t1 beqz $t2, label5 b label1 label5: b label0 label1: li $v0, 5 syscall move $t0, $v0 sw $t0, a_1 lw $t0, a_1 sw $t0, temp_1 li $t0, 1 sw $t0, len_1 label6: lw $t0, temp_1 li $t1, 10 div $t2, $t0, $t1 li $t0, 0 sgt $t1, $t2, $t0 beqz $t1, label7 lw $t0, len_1 addi $t2, $t0, 1 sw $t2, len_1 lw $t0, temp_1 li $t1, 10 div $t2, $t0, $t1 sw $t2, temp_1 b label6 label7: li $t0, 2 sw $t0, i_1 lw $t0, a_1 li $t1, 1 sle $t2, $t0, $t1 beqz $t2, label8 li $v0, 1 li $a0, 0 syscall li $v0, 1 syscall li $v0, 1 syscall li $v0, 1 syscall label8: lw $t0, a_1 sgt $t2, $t0, $t1 beqz $t2, label9 label10: lw $t0, i_1 lw $t1, a_1 slt $t2, $t0, $t1 beqz $t2, label11 lw $t0, a_1 lw $t1, a_1 lw $t2, i_1 div $t3, $t1, $t2 lw $t1, i_1 mul $t2, $t3, $t1 sub $t1, $t0, $t2 li $t0, 0 sne $t2, $t1, $t0 beqz $t2, label12 lw $t0, i_1 addi $t2, $t0, 1 sw $t2, i_1 b label10 label12: b label11 b label10 label11: lw $t0, i_1 lw $t1, a_1 sne $t2, $t0, $t1 beqz $t2, label13 li $v0, 1 li $a0, 0 syscall li $v0, 1 syscall li $v0, 1 syscall li $v0, 1 syscall label13: lw $t0, i_1 lw $t1, a_1 seq $t2, $t0, $t1 beqz $t2, label14 lw $t0, a_1 sw $t0, temp_1 li $t0, 0 sw $t0, i_1 label15: lw $t0, i_1 lw $t1, len_1 slt $t2, $t0, $t1 beqz $t2, label16 lw $t0, temp_1 lw $t1, temp_1 li $t2, 10 div $t3, $t1, $t2 li $t1, 10 mul $t2, $t3, $t1 sub $t1, $t0, $t2 sw $t1, remainder_1 li $t0, 0 sw $t0, j_1 li $t0, 1 sw $t0, ten_power_1 label17: lw $t0, j_1 lw $t1, len_1 li $t2, 1 sub $t3, $t1, $t2 slt $t1, $t0, $t3 beqz $t1, label18 lw $t0, ten_power_1 li $t1, 10 mul $t2, $t0, $t1 sw $t2, ten_power_1 lw $t0, j_1 addi $t2, $t0, 1 sw $t2, j_1 b label17 label18: lw $t0, remainder_1 lw $t1, ten_power_1 mul $t2, $t0, $t1 lw $t0, temp_1 li $t1, 10 div $t3, $t0, $t1 add $t0, $t2, $t3 sw $t0, temp_1 lw $t0, i_1 addi $t2, $t0, 1 sw $t2, i_1 li $t0, 2 sw $t0, j_1 label19: lw $t0, j_1 lw $t1, temp_1 slt $t2, $t0, $t1 beqz $t2, label20 lw $t0, temp_1 lw $t1, temp_1 lw $t2, j_1 div $t3, $t1, $t2 lw $t1, j_1 mul $t2, $t3, $t1 sub $t1, $t0, $t2 li $t0, 0 sne $t2, $t1, $t0 beqz $t2, label21 lw $t0, j_1 addi $t2, $t0, 1 sw $t2, j_1 b label19 label21: b label20 b label19 label20: lw $t0, j_1 lw $t1, temp_1 sne $t2, $t0, $t1 beqz $t2, label22 li $v0, 1 li $a0, 0 syscall li $v0, 1 syscall li $v0, 1 syscall li $v0, 1 syscall b label16 label22: b label15 label16: lw $t0, j_1 lw $t1, temp_1 seq $t2, $t0, $t1 beqz $t2, label23 li $v0, 1 li $a0, 1111 syscall label23: label14: label9: li $t0, 0 sw $t0, i_1 label24: lw $t0, i_1 li $t1, 5 slt $t2, $t0, $t1 beqz $t2, label25 li $v0, 5 syscall move $t0, $v0 sw $t0, a_1 lw $t0, i_1 lw $t1, a_1 li $t2, 4 mul $t0, $t0, $t2 la $t2, arr_1 add $t0, $t0, $t2 sw $t1, ($t0) lw $t0, i_1 addi $t2, $t0, 1 sw $t2, i_1 b label24 label25: li $t0, 1 sw $t0, sum_1 li $t0, 2 sw $t0, divisor_1 label26: lw $t0, divisor_1 la $t2, arr_1 lw $t1, ($t2) li $t2, 2 div $t3, $t1, $t2 addi $t2, $t3, 1 slt $t1, $t0, $t2 beqz $t1, label27 la $t1, arr_1 lw $t0, ($t1) la $t2, arr_1 lw $t1, ($t2) lw $t2, divisor_1 div $t3, $t1, $t2 lw $t1, divisor_1 mul $t2, $t3, $t1 sub $t1, $t0, $t2 li $t0, 0 seq $t2, $t1, $t0 beqz $t2, label28 lw $t0, sum_1 lw $t1, divisor_1 add $t2, $t0, $t1 sw $t2, sum_1 label28: lw $t0, divisor_1 addi $t2, $t0, 1 sw $t2, divisor_1 b label26 label27: lw $t0, sum_1 la $t2, arr_1 addi $t2, $t2, 4 lw $t1, ($t2) sne $t2, $t0, $t1 beqz $t2, label29 li $v0, 1 li $a0, 0 syscall label29: lw $t0, sum_1 la $t2, arr_1 addi $t2, $t2, 4 lw $t1, ($t2) seq $t2, $t0, $t1 beqz $t2, label30 li $t0, 1 sw $t0, sum_1 li $t0, 2 sw $t0, divisor_1 label31: lw $t0, divisor_1 la $t2, arr_1 addi $t2, $t2, 4 lw $t1, ($t2) li $t2, 2 div $t3, $t1, $t2 addi $t2, $t3, 1 slt $t1, $t0, $t2 beqz $t1, label32 la $t1, arr_1 addi $t1, $t1, 4 lw $t0, ($t1) lw $t1, divisor_1 div $t2, $t0, $t1 lw $t0, divisor_1 mul $t1, $t2, $t0 la $t2, arr_1 addi $t2, $t2, 4 lw $t0, ($t2) seq $t2, $t1, $t0 beqz $t2, label33 lw $t0, sum_1 lw $t1, divisor_1 add $t2, $t0, $t1 sw $t2, sum_1 label33: lw $t0, divisor_1 addi $t2, $t0, 1 sw $t2, divisor_1 b label31 label32: lw $t0, sum_1 la $t2, arr_1 lw $t1, ($t2) sne $t2, $t0, $t1 beqz $t2, label34 li $v0, 1 li $a0, 0 syscall label34: lw $t0, sum_1 la $t2, arr_1 lw $t1, ($t2) seq $t2, $t0, $t1 beqz $t2, label35 li $v0, 1 li $a0, 1 syscall label35: label30: li $t0, 2 sw $t0, i_1 label36: lw $t0, i_1 li $t1, 5 slt $t2, $t0, $t1 beqz $t2, label37 li $t0, 1 sw $t0, sum_1 li $t0, 2 sw $t0, divisor_1 label38: lw $t0, divisor_1 lw $t1, i_1 la $t2, arr_1 mul $t1, $t1, 4 add $t2, $t2, $t1 lw $t1, ($t2) li $t2, 2 div $t3, $t1, $t2 addi $t2, $t3, 1 slt $t1, $t0, $t2 beqz $t1, label39 lw $t0, i_1 la $t1, arr_1 mul $t0, $t0, 4 add $t1, $t1, $t0 lw $t0, ($t1) lw $t1, divisor_1 div $t2, $t0, $t1 lw $t0, divisor_1 mul $t1, $t2, $t0 lw $t0, i_1 la $t2, arr_1 mul $t0, $t0, 4 add $t2, $t2, $t0 lw $t0, ($t2) seq $t2, $t1, $t0 beqz $t2, label40 lw $t0, sum_1 lw $t1, divisor_1 add $t2, $t0, $t1 sw $t2, sum_1 label40: lw $t0, divisor_1 addi $t2, $t0, 1 sw $t2, divisor_1 b label38 label39: lw $t0, sum_1 lw $t1, i_1 la $t2, arr_1 mul $t1, $t1, 4 add $t2, $t2, $t1 lw $t1, ($t2) seq $t2, $t0, $t1 beqz $t2, label41 li $v0, 1 li $a0, 1 syscall lw $t0, i_1 addi $t2, $t0, 1 sw $t2, i_1 b label36 label41: lw $t0, sum_1 lw $t1, i_1 la $t2, arr_1 mul $t1, $t1, 4 add $t2, $t2, $t1 lw $t1, ($t2) sne $t2, $t0, $t1 beqz $t2, label42 li $v0, 1 li $a0, 0 syscall lw $t0, i_1 addi $t2, $t0, 1 sw $t2, i_1 label42: b label36 label37: li $v0, 10 syscall