Better format.
This commit is contained in:
@@ -1,66 +1,66 @@
|
||||
.data
|
||||
.text
|
||||
li $v0 5 # read in num
|
||||
syscall
|
||||
li $v0, 5 # read in num
|
||||
syscall
|
||||
|
||||
move $s0, $v0 # $s0 is n
|
||||
move $a0, $v0
|
||||
li $v0, 9 # malloc
|
||||
syscall
|
||||
move $s1, $v0 # $s1 = a
|
||||
move $s0, $v0 # $s0 is n
|
||||
move $a0, $v0
|
||||
li $v0, 9 # malloc
|
||||
syscall
|
||||
move $s1, $v0 # $s1 = a
|
||||
|
||||
move $t0, $zero # a0 = 0
|
||||
move $t0, $zero # a0 = 0
|
||||
|
||||
move $t0, $zero # i = 0
|
||||
move $t1, $s1 #t1 = a
|
||||
read_in_num:
|
||||
bge $t0, $s0, done_read_in_num # i >= n, break
|
||||
li $v0, 5 # read in num
|
||||
syscall
|
||||
move $t0, $zero # i = 0
|
||||
move $t1, $s1 #t1 = a
|
||||
read_in_num:
|
||||
bge $t0, $s0, done_read_in_num # i >= n, break
|
||||
li $v0, 5 # read in num
|
||||
syscall
|
||||
|
||||
sw $v0, 0($t1) # a[i] = v0
|
||||
addi $t0, $t0, 1 # i++
|
||||
addi $t1, $t1, 4 # t1 += 4
|
||||
j read_in_num
|
||||
sw $v0, 0($t1) # a[i] = v0
|
||||
addi $t0, $t0, 1 # i++
|
||||
addi $t1, $t1, 4 # t1 += 4
|
||||
j read_in_num
|
||||
|
||||
done_read_in_num:
|
||||
srl $s2, $s0, 1 # s1 = n / 2
|
||||
move $t0, $zero # i = 0
|
||||
move $t1, $s1
|
||||
done_read_in_num:
|
||||
srl $s2, $s0, 1 # s1 = n / 2
|
||||
move $t0, $zero # i = 0
|
||||
move $t1, $s1
|
||||
|
||||
subi $t2, $s0, 1 # t2 = n - 1
|
||||
sll $t2, $t2, 2 # t2 *= 4
|
||||
add $t2, $t2, $s1
|
||||
reverse:
|
||||
bge $t0, $s2, done_reverse # i >= n / 2, break
|
||||
lw $t3, 0($t1) # t3 = a[i]
|
||||
addi $t3, $t3, 1 # t3 += 1
|
||||
subi $t2, $s0, 1 # t2 = n - 1
|
||||
sll $t2, $t2, 2 # t2 *= 4
|
||||
add $t2, $t2, $s1
|
||||
reverse:
|
||||
bge $t0, $s2, done_reverse # i >= n / 2, break
|
||||
lw $t3, 0($t1) # t3 = a[i]
|
||||
addi $t3, $t3, 1 # t3 += 1
|
||||
|
||||
lw $t4, 0($t2) # t4 = a[n - i - 1]
|
||||
addi $t4, $t4, 1 # t4 += 1
|
||||
lw $t4, 0($t2) # t4 = a[n - i - 1]
|
||||
addi $t4, $t4, 1 # t4 += 1
|
||||
|
||||
sw $t4, 0($t1)
|
||||
sw $t3, 0($t2)
|
||||
sw $t4, 0($t1)
|
||||
sw $t3, 0($t2)
|
||||
|
||||
addi $t0, $t0, 1
|
||||
addi $t1, $t1, 4
|
||||
subi $t2, $t2, 4
|
||||
j reverse
|
||||
addi $t0, $t0, 1
|
||||
addi $t1, $t1, 4
|
||||
subi $t2, $t2, 4
|
||||
j reverse
|
||||
|
||||
done_reverse:
|
||||
move $t0, $zero
|
||||
move $t1, $s1
|
||||
done_reverse:
|
||||
move $t0, $zero
|
||||
move $t1, $s1
|
||||
|
||||
output:
|
||||
bge $t0, $s0 done_output
|
||||
lw $a0, 0($t1)
|
||||
li $v0 1
|
||||
syscall
|
||||
output:
|
||||
bge $t0, $s0, done_output
|
||||
lw $a0, 0($t1)
|
||||
li $v0, 1
|
||||
syscall
|
||||
|
||||
addi $t0, $t0, 1
|
||||
addi $t1, $t1, 4
|
||||
j output
|
||||
addi $t0, $t0, 1
|
||||
addi $t1, $t1, 4
|
||||
j output
|
||||
|
||||
done_output:
|
||||
li $v0 17
|
||||
syscall
|
||||
done_output:
|
||||
li $v0, 17
|
||||
syscall
|
||||
Reference in New Issue
Block a user