Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- v:.space 400
- w:.space 400
- z:.space 400
- n:.space 4
- sp:.asciiz " "
- .text
- main:
- li $v0, 5
- syscall
- move $t0, $v0
- sw $t0, n
- li $t1, 0
- li $t2, 0
- # read v
- readv:
- beq $t1, $t0, readvexit
- li $v0, 5
- syscall
- sw $v0, v($t2)
- addi $t1, 1
- addi $t2, 4
- j readv
- readvexit:
- li $t1, 0
- li $t2, 0
- #read w
- readw:
- beq $t1, $t0, readwexit
- li $v0, 5
- syscall
- sw $v0, w($t2)
- addi $t1, 1
- addi $t2, 4
- j readw
- readwexit:
- li $t1, 0 #index for array 1
- li $t2, 0 #index for array 2
- li $t3, 0 #index for final array
- lw $t4, n
- add $t4, $t4, $t4 #the length of the new array
- #multiply t4 by 4
- add $t4, $t4, $t4
- add $t4, $t4, $t4
- lw $t9, n
- add $t9, $t9, $t9
- add $t9, $t9, $t9
- merge:
- beq $t3, $t4, exit
- bge $t1, $t9, pushsecond
- bge $t2, $t9, pushfirst
- lw $t5, v($t1) #value in v
- lw $t6, w($t2) #value in w
- ble $t5, $t6, pushfirst
- pushsecond:
- lw $t6, w($t2) #value in w
- # else, push the second number
- sw $t6, z($t3)
- addi $t3, 4
- addi $t2, 4
- j merge
- pushfirst:
- lw $t5, v($t1) #value in v
- sw $t5, z($t3)
- addi $t3, 4
- addi $t1, 4
- j merge
- exit:
- lw $t0, n
- add $t0, $t0, $t0
- li $t1, 0
- li $t2, 0
- printarray:
- beq $t1, $t0, exitprint
- lw $t3, z($t2)
- li $v0, 1
- move $a0, $t3
- syscall
- la $a0, sp
- li $v0, 4
- syscall
- addi $t1, 1
- addi $t2, 4
- j printarray
- exitprint:
- li $v0, 10
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement