Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- _scratch:
- .space 64
- .text
- __crt0:
- jal main
- move $a0, $v0
- li $v0, 17
- syscall
- print_integer:
- li $v0, 1
- syscall
- jr $ra
- print_string:
- li $v0, 4
- syscall
- jr $ra
- print_char:
- li $v0, 11
- syscall
- jr $ra
- malloc:
- li $v0, 9
- syscall
- jr $ra
- get_scratch:
- la $v0, _scratch
- jr $ra
- .globl MergeSort
- MergeSort:
- addiu $sp, $sp, -32
- sw $s0, ($sp)
- sw $s1, 4($sp)
- sw $s2, 8($sp)
- sw $s3, 12($sp)
- sw $s4, 16($sp)
- sw $s5, 20($sp)
- sw $s6, 24($sp)
- sw $s7, 28($sp)
- addiu $sp, $sp, -32
- sw $ra, 28($sp)
- sw $a0, ($sp)
- sw $a1, 4($sp)
- addiu $s0, $sp, 4
- lw $s0, ($s0)
- addiu $s1, $zero, 1
- slt $s0, $s1, $s0
- beq $s0, $zero, ifAlt_T0
- addiu $s0, $sp, 8
- addiu $a0, $sp, 4
- lw $a0, ($a0)
- addiu $s1, $zero, 2
- div $a0, $s1
- mflo $a0
- addiu $s1, $zero, 4
- mul $a0, $a0, $s1
- jal malloc
- add $s1, $zero, $v0
- sw $s1, ($s0)
- add $s0, $zero, $s1
- addiu $s0, $sp, 12
- addiu $a0, $sp, 4
- lw $a0, ($a0)
- addiu $s1, $zero, 1
- add $a0, $a0, $s1
- addiu $s1, $zero, 2
- div $a0, $s1
- mflo $a0
- addiu $s1, $zero, 4
- mul $a0, $a0, $s1
- jal malloc
- add $s1, $zero, $v0
- sw $s1, ($s0)
- add $s0, $zero, $s1
- addiu $s0, $sp, 16
- addiu $s1, $zero, 0
- sw $s1, ($s0)
- add $s0, $zero, $s1
- j whileEnd_T3
- .globl whileLoop_T2
- whileLoop_T2:
- addiu $s0, $sp, 8
- lw $s0, ($s0)
- addiu $s1, $sp, 16
- lw $s1, ($s1)
- sll $s1, $s1, 2
- add $s0, $s0, $s1
- addiu $s1, $sp, 0
- lw $s1, ($s1)
- addiu $s2, $sp, 16
- lw $s2, ($s2)
- sll $s2, $s2, 2
- add $s1, $s1, $s2
- lw $s1, ($s1)
- sw $s1, ($s0)
- add $s0, $zero, $s1
- addiu $s0, $sp, 16
- lw $s1, ($s0)
- add $s2, $zero, $s1
- addiu $s1, $s1, 1
- sw $s1, ($s0)
- add $s0, $zero, $s2
- .globl whileEnd_T3
- whileEnd_T3:
- addiu $s0, $sp, 4
- lw $s0, ($s0)
- addiu $s1, $zero, 2
- div $s0, $s1
- mflo $s0
- addiu $s1, $sp, 16
- lw $s1, ($s1)
- slt $s1, $s1, $s0
- bne $s1, $zero, whileLoop_T2
- addiu $s1, $sp, 4
- lw $s1, ($s1)
- addiu $s0, $zero, 2
- div $s1, $s0
- mflo $s1
- addiu $s0, $sp, 16
- sw $s1, ($s0)
- add $s0, $zero, $s1
- j whileEnd_T5
- .globl whileLoop_T4
- whileLoop_T4:
- addiu $s0, $sp, 4
- lw $s0, ($s0)
- addiu $s1, $zero, 2
- div $s0, $s1
- mflo $s0
- addiu $s1, $sp, 16
- lw $s1, ($s1)
- sub $s1, $s1, $s0
- addiu $s0, $sp, 12
- lw $s0, ($s0)
- sll $s1, $s1, 2
- add $s0, $s0, $s1
- addiu $s1, $sp, 0
- lw $s1, ($s1)
- addiu $s2, $sp, 16
- lw $s2, ($s2)
- sll $s2, $s2, 2
- add $s1, $s1, $s2
- lw $s1, ($s1)
- sw $s1, ($s0)
- add $s0, $zero, $s1
- addiu $s0, $sp, 16
- lw $s1, ($s0)
- add $s2, $zero, $s1
- addiu $s1, $s1, 1
- sw $s1, ($s0)
- add $s0, $zero, $s2
- .globl whileEnd_T5
- whileEnd_T5:
- addiu $s0, $sp, 16
- lw $s0, ($s0)
- addiu $s1, $sp, 4
- lw $s1, ($s1)
- slt $s0, $s0, $s1
- bne $s0, $zero, whileLoop_T4
- addiu $a0, $sp, 8
- lw $a0, ($a0)
- addiu $a1, $sp, 4
- lw $a1, ($a1)
- addiu $s0, $zero, 2
- div $a1, $s0
- mflo $a1
- jal MergeSort
- add $s0, $zero, $v0
- addiu $a0, $sp, 12
- lw $a0, ($a0)
- addiu $a1, $sp, 4
- lw $a1, ($a1)
- addiu $s0, $zero, 1
- add $a1, $a1, $s0
- addiu $s0, $zero, 2
- div $a1, $s0
- mflo $a1
- jal MergeSort
- add $s0, $zero, $v0
- addiu $s0, $sp, 20
- addiu $s1, $sp, 8
- lw $s1, ($s1)
- addiu $s2, $zero, 0
- sll $s2, $s2, 2
- add $s1, $s1, $s2
- sw $s1, ($s0)
- add $s0, $zero, $s1
- addiu $s0, $sp, 24
- addiu $s1, $sp, 12
- lw $s1, ($s1)
- addiu $s2, $zero, 0
- sll $s2, $s2, 2
- add $s1, $s1, $s2
- sw $s1, ($s0)
- add $s0, $zero, $s1
- addiu $s0, $sp, 16
- addiu $s1, $zero, 0
- sw $s1, ($s0)
- add $s0, $zero, $s1
- j whileEnd_T7
- .globl whileLoop_T6
- whileLoop_T6:
- addiu $s0, $sp, 20
- lw $s0, ($s0)
- lw $s0, ($s0)
- addiu $s1, $sp, 24
- lw $s1, ($s1)
- lw $s1, ($s1)
- slt $s0, $s0, $s1
- bne $s0, $zero, orEnd_T8
- addiu $s0, $sp, 20
- lw $s0, ($s0)
- lw $s0, ($s0)
- addiu $s1, $sp, 24
- lw $s1, ($s1)
- lw $s1, ($s1)
- xor $s0, $s0, $s1
- sltiu $s0, $s0, 1
- .globl orEnd_T8
- orEnd_T8:
- beq $s0, $zero, ifAlt_T9
- addiu $s0, $sp, 0
- lw $s0, ($s0)
- addiu $s1, $sp, 16
- lw $s1, ($s1)
- sll $s1, $s1, 2
- add $s0, $s0, $s1
- addiu $s1, $sp, 20
- lw $s1, ($s1)
- lw $s1, ($s1)
- sw $s1, ($s0)
- add $s0, $zero, $s1
- addiu $s0, $sp, 20
- lw $s0, ($s0)
- addiu $s1, $sp, 4
- lw $s1, ($s1)
- addiu $s2, $zero, 1
- add $s1, $s1, $s2
- addiu $s2, $zero, 2
- div $s1, $s2
- mflo $s1
- addiu $s2, $zero, 1
- sub $s1, $s1, $s2
- addiu $s2, $sp, 12
- lw $s2, ($s2)
- sll $s1, $s1, 2
- add $s2, $s2, $s1
- xor $s0, $s0, $s2
- beq $s0, $zero, ifAlt_T11
- addiu $s0, $sp, 20
- lw $s0, ($s0)
- addiu $s2, $sp, 4
- lw $s2, ($s2)
- addiu $s1, $zero, 2
- div $s2, $s1
- mflo $s2
- addiu $s1, $zero, 1
- sub $s2, $s2, $s1
- addiu $s1, $sp, 8
- lw $s1, ($s1)
- sll $s2, $s2, 2
- add $s1, $s1, $s2
- xor $s0, $s0, $s1
- sltiu $s0, $s0, 1
- beq $s0, $zero, ifAlt_T13
- addiu $s0, $sp, 20
- addiu $s1, $sp, 4
- lw $s1, ($s1)
- addiu $s2, $zero, 1
- add $s1, $s1, $s2
- addiu $s2, $zero, 2
- div $s1, $s2
- mflo $s1
- addiu $s2, $zero, 1
- sub $s1, $s1, $s2
- addiu $s2, $sp, 12
- lw $s2, ($s2)
- sll $s1, $s1, 2
- add $s2, $s2, $s1
- sw $s2, ($s0)
- add $s0, $zero, $s2
- j ifEnd_T14
- .globl ifAlt_T13
- ifAlt_T13:
- addiu $s0, $sp, 20
- lw $s2, ($s0)
- addiu $s2, $s2, 4
- sw $s2, ($s0)
- add $s0, $zero, $s2
- .globl ifEnd_T14
- ifEnd_T14:
- j ifEnd_T12
- .globl ifAlt_T11
- ifAlt_T11:
- .globl ifEnd_T12
- ifEnd_T12:
- j ifEnd_T10
- .globl ifAlt_T9
- ifAlt_T9:
- addiu $s0, $sp, 0
- lw $s0, ($s0)
- addiu $s2, $sp, 16
- lw $s2, ($s2)
- sll $s2, $s2, 2
- add $s0, $s0, $s2
- addiu $s2, $sp, 24
- lw $s2, ($s2)
- lw $s2, ($s2)
- sw $s2, ($s0)
- add $s0, $zero, $s2
- addiu $s0, $sp, 24
- lw $s0, ($s0)
- addiu $s2, $sp, 4
- lw $s2, ($s2)
- addiu $s1, $zero, 1
- add $s2, $s2, $s1
- addiu $s1, $zero, 2
- div $s2, $s1
- mflo $s2
- addiu $s1, $zero, 1
- sub $s2, $s2, $s1
- addiu $s1, $sp, 12
- lw $s1, ($s1)
- sll $s2, $s2, 2
- add $s1, $s1, $s2
- xor $s0, $s0, $s1
- sltiu $s0, $s0, 1
- beq $s0, $zero, ifAlt_T15
- addiu $s0, $sp, 24
- addiu $s1, $sp, 4
- lw $s1, ($s1)
- addiu $s2, $zero, 2
- div $s1, $s2
- mflo $s1
- addiu $s2, $zero, 1
- sub $s1, $s1, $s2
- addiu $s2, $sp, 8
- lw $s2, ($s2)
- sll $s1, $s1, 2
- add $s2, $s2, $s1
- sw $s2, ($s0)
- add $s0, $zero, $s2
- j ifEnd_T16
- .globl ifAlt_T15
- ifAlt_T15:
- addiu $s0, $sp, 24
- lw $s2, ($s0)
- addiu $s2, $s2, 4
- sw $s2, ($s0)
- add $s0, $zero, $s2
- .globl ifEnd_T16
- ifEnd_T16:
- .globl ifEnd_T10
- ifEnd_T10:
- addiu $s0, $sp, 16
- lw $s2, ($s0)
- add $s1, $zero, $s2
- addiu $s2, $s2, 1
- sw $s2, ($s0)
- add $s0, $zero, $s1
- .globl whileEnd_T7
- whileEnd_T7:
- addiu $s0, $sp, 16
- lw $s0, ($s0)
- addiu $s2, $sp, 4
- lw $s2, ($s2)
- slt $s0, $s0, $s2
- bne $s0, $zero, whileLoop_T6
- j ifEnd_T1
- .globl ifAlt_T0
- ifAlt_T0:
- .globl ifEnd_T1
- ifEnd_T1:
- .globl MergeSort_end
- MergeSort_end:
- add $v0, $zero, $s0
- lw $ra, 28($sp)
- addiu $sp, $sp, 32
- lw $s0, ($sp)
- lw $s1, 4($sp)
- lw $s2, 8($sp)
- lw $s3, 12($sp)
- lw $s4, 16($sp)
- lw $s5, 20($sp)
- lw $s6, 24($sp)
- lw $s7, 28($sp)
- addiu $sp, $sp, 32
- jr $ra
- .globl main
- main:
- addiu $sp, $sp, -32
- sw $s0, ($sp)
- sw $s1, 4($sp)
- sw $s2, 8($sp)
- sw $s3, 12($sp)
- sw $s4, 16($sp)
- sw $s5, 20($sp)
- sw $s6, 24($sp)
- sw $s7, 28($sp)
- addiu $sp, $sp, -16
- sw $ra, 12($sp)
- addiu $s0, $sp, 0
- addiu $s2, $zero, 5
- sw $s2, ($s0)
- add $s0, $zero, $s2
- addiu $s0, $sp, 4
- addiu $a0, $sp, 0
- lw $a0, ($a0)
- addiu $s2, $zero, 4
- mul $a0, $a0, $s2
- jal malloc
- add $s2, $zero, $v0
- sw $s2, ($s0)
- add $s0, $zero, $s2
- addiu $s0, $sp, 4
- lw $s0, ($s0)
- addiu $s2, $zero, 0
- sll $s2, $s2, 2
- add $s0, $s0, $s2
- addiu $s2, $zero, 42
- sw $s2, ($s0)
- add $s0, $zero, $s2
- addiu $s0, $sp, 4
- lw $s0, ($s0)
- addiu $s2, $zero, 1
- sll $s2, $s2, 2
- add $s0, $s0, $s2
- addiu $s2, $zero, 1
- sw $s2, ($s0)
- add $s0, $zero, $s2
- addiu $s0, $sp, 4
- lw $s0, ($s0)
- addiu $s2, $zero, 2
- sll $s2, $s2, 2
- add $s0, $s0, $s2
- addiu $s2, $zero, 7
- sw $s2, ($s0)
- add $s0, $zero, $s2
- addiu $s0, $sp, 4
- lw $s0, ($s0)
- addiu $s2, $zero, 3
- sll $s2, $s2, 2
- add $s0, $s0, $s2
- addiu $s2, $zero, 3
- sw $s2, ($s0)
- add $s0, $zero, $s2
- addiu $s0, $sp, 4
- lw $s0, ($s0)
- addiu $s2, $zero, 4
- sll $s2, $s2, 2
- add $s0, $s0, $s2
- addiu $s2, $zero, 37
- sw $s2, ($s0)
- add $s0, $zero, $s2
- addiu $a0, $sp, 4
- lw $a0, ($a0)
- addiu $a1, $sp, 0
- lw $a1, ($a1)
- jal MergeSort
- add $s0, $zero, $v0
- addiu $s0, $sp, 8
- addiu $s2, $zero, 0
- sw $s2, ($s0)
- add $s0, $zero, $s2
- j whileEnd_T18
- .globl whileLoop_T17
- whileLoop_T17:
- addiu $a0, $sp, 4
- lw $a0, ($a0)
- addiu $s0, $sp, 8
- lw $s0, ($s0)
- sll $s0, $s0, 2
- add $a0, $a0, $s0
- lw $a0, ($a0)
- jal print_integer
- add $s0, $zero, $v0
- addiu $a0, $zero, 10
- jal print_char
- add $s0, $zero, $v0
- addiu $s0, $sp, 8
- lw $s2, ($s0)
- add $s1, $zero, $s2
- addiu $s2, $s2, 1
- sw $s2, ($s0)
- add $s0, $zero, $s1
- .globl whileEnd_T18
- whileEnd_T18:
- addiu $s0, $sp, 8
- lw $s0, ($s0)
- addiu $s2, $sp, 0
- lw $s2, ($s2)
- slt $s0, $s0, $s2
- bne $s0, $zero, whileLoop_T17
- addiu $s0, $zero, 42
- j main_end
- .globl main_end
- main_end:
- add $v0, $zero, $s0
- lw $ra, 12($sp)
- addiu $sp, $sp, 16
- lw $s0, ($sp)
- lw $s1, 4($sp)
- lw $s2, 8($sp)
- lw $s3, 12($sp)
- lw $s4, 16($sp)
- lw $s5, 20($sp)
- lw $s6, 24($sp)
- lw $s7, 28($sp)
- addiu $sp, $sp, 32
- jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement