diff --git a/1/homework/exp1/exp1_3.asm b/1/homework/exp1/exp1_3.asm index 3fdcbb9..3f05bcb 100644 --- a/1/homework/exp1/exp1_3.asm +++ b/1/homework/exp1/exp1_3.asm @@ -13,48 +13,54 @@ 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 +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 +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 +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 +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 +done_output: +li $v0 17 syscall \ No newline at end of file