You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
2.1 KiB
167 lines
2.1 KiB
.data
|
|
__str0:
|
|
.asciiz " is prime!\n"
|
|
.text
|
|
|
|
|
|
.globl entry
|
|
entry:
|
|
addi $sp, $sp, -2008
|
|
addi $s0, $sp, 4
|
|
li $s1, 2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L0:
|
|
lw $s0, 4($sp)
|
|
li $s1, 500
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1
|
|
addi $s0, $sp, 8
|
|
lw $s1, 4($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L0
|
|
|
|
__L1:
|
|
addi $s0, $sp, 4
|
|
li $s1, 2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L2:
|
|
lw $s0, 4($sp)
|
|
li $s1, 500
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L3
|
|
addi $s0, $sp, 8
|
|
lw $s1, 4($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L4
|
|
addi $s0, $sp, 0
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L5:
|
|
lw $s0, 0($sp)
|
|
li $s1, 500
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L6
|
|
lw $s0, 0($sp)
|
|
lw $s1, 4($sp)
|
|
div $s0, $s1
|
|
mfhi $s0
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L7
|
|
addi $s0, $sp, 8
|
|
lw $s1, 0($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L7:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L5
|
|
|
|
__L6:
|
|
|
|
__L4:
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L2
|
|
|
|
__L3:
|
|
addi $s0, $sp, 4
|
|
li $s1, 2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L8:
|
|
lw $s0, 4($sp)
|
|
li $s1, 500
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L9
|
|
addi $s0, $sp, 8
|
|
lw $s1, 4($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L10
|
|
addi $sp, $sp, -16
|
|
la $s0, printd
|
|
sw $s0, 12($sp)
|
|
la $t0, __L12
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L12:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L14
|
|
sw $t0, 8($sp)
|
|
la $t0, __str0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L14:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L10:
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L8
|
|
|
|
__L9:
|
|
addi $sp, $sp, 2008
|
|
lw $ra, 4($sp)
|
|
jr $ra
|