.data testee: .word 0 divisor: .word 0 stop: .word 0 is_prime: .word 0 sss1: .asciiz " " sss2: .asciiz "" .text main: li $t0, 2 sw $t0, testee li $t1, 500 sw $t1, stop L1: lw $t2, testee lw $t3, stop slt $t2, $t2, $t3 beqz $t2, L2 lw $t2, testee li $t3, 1 addi $t2, $t2, 1 sw $t2, testee sw $t3, is_prime li $t4, 2 sw $t4, divisor L3: lw $t5, divisor lw $t6, divisor mul $t5, $t5, $t6 lw $t6, testee slt $t5, $t5, $t6 beqz $t5, L4 lw $t5, testee lw $t6, divisor lw $t7, testee lw $t0, divisor div $t7, $t7, $t0 mul $t6, $t6, $t7 sub $t5, $t5, $t6 li $t0, 0 seq $t5, $t5, $t0 beqz $t5, L5 sw $t0, is_prime b L6 L5: lw $t5, is_prime sw $t5, is_prime L6: lw $t5, divisor addi $t5, $t5, 1 sw $t5, divisor b L3 L4: lw $t6, is_prime beqz $t6, L7 lw $t6, testee li $v0, 1 move $a0, $t6 syscall li $v0, 4 la $a0, sss1 syscall b L8 L7: li $v0, 4 la $a0, sss2 syscall L8: b L1 L2: li $v0, 10 syscall