Question
HOW DO I FIX THE RUNTIME EXCEPTION ( the line in bold letters) .data ### Declare myArray, an array of length 20 and initialize with
HOW DO I FIX THE RUNTIME EXCEPTION ( the line in bold letters)
.data ### Declare myArray, an array of length 20 and initialize with 0. ### myArray: .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
### Declare appropriate strings and the space character for I/O prompts ### newline: .ascii " " inputPrompt: .asciiz "Enter the number of integers: " numPrompt: .asciiz "Enter an integer: " outputPrompt: .asciiz "The sorted array is: " space: .asciiz " "
.text main: ### call the procedure for reading the array ### li $v0, 4 la $a0, inputPrompt syscall li $v0, 5 syscall ### Save the size of the array as returned in v0 from the read_array procedure to s0 ### move $s0, $v0 ### Assign appropriate values to a0 and a1 that will be the arguments for the sort procedure. ### la $a0, myArray move $a1, $s0 jal read_array ### Check the description of the sort procedure ### la $a0, myArray move $a1, $s0 ### Check the description of the sort procedure ### jal sort li $v0, 4 la $a0, outputPrompt syscall ### move s0 to a1. a1 will be used by the print_array procedure ### move $a1, $s0 ### call the print_array procedure ### jal print_array j exit
read_array: ### Read value of n and then read n integers to myArray. Use appropriate input prompts ### li $t0, 0 move $s1, $s0 la $s2, myArray
while:### you need to create a while loop ### ### Use t registers for counters and array indices ### bge $t0, $s1, endWhile li $v0, 4 la $a0, numPrompt syscall li $v0, 5 syscall
### the size of the array (n) will be saved to v0 before returning to main #### sw $v0, 0($s2) addi $s2, $s2, 4 addi $t0, $t0, 1 j while
endWhile: ### endding the loop move $v0, $s0 jr $ra
sort: # Two arguments: a0 for the starting address of the array; a1 is the number of integers
addi $sp,$sp,-20 # make room on stack for 5 registers sw $ra, 16($sp) # save $ra on stack sw $s3,12($sp) # save $s3 on stack sw $s2, 8($sp) # save $s2 on stack sw $s1, 4($sp) # save $s1 on stack sw $s0, 0($sp) # save $s0 on stack move $s2, $a0 # save $a0 into $s2 move $s3, $a1 # save $a1 into $s3 move $s0, $zero # i = 0
for1tst: slt $t0, $s0, $s3 # $t0 = 0 if $s0 $s3 (i n beq $t0, $zero, exit1 # go to exit1 if $s0 $s3 (i n) addi $s1, $s0,-1 # j = i 1 for2tst: slti $t0, $s1, 0 # $t0 = 1 if $s1 < 0 (j < 0) bne $t0, $zero, exit2 # go to exit2 if $s1 < 0 (j < 0) sll $t1, $s1, 2 # $t1 = j * 4 add $t2, $s2, $t1 # $t2 = v + (j * 4) lw $t3, 0($t2) # $t3 = v[j] lw $t4, 4($t2) # $t4 = v[j + 1] slt $t0, $t4, $t3 # $t0 = 0 if $t4 $t3 beq $t0, $zero, exit2 # go to exit2 if $t4 $t3 move $a0, $s2 # 1st param of swap is v (old $a0) move $a1, $s1 # 2nd param of swap is j jal swap # call swap procedure addi $s1, $s1,-1 # j = 1 j for2tst # jump to test of inner loop
exit2: addi $s0, $s0, 1 # i += 1 j for1tst # jump to test of outer loop exit1: lw $s0, 0($sp) # restore $s0 from stack lw $s1, 4($sp) # restore $s1 from stack lw $s2, 8($sp) # restore $s2 from stack lw $s3,12($sp) # restore $s3 from stack lw $ra,16($sp) # restore $ra from stack addi $sp,$sp, 20 # restore stack pointer jr $ra # return to calling routine swap: sll $t1, $a1, 2 # $t1 = k * 4 add $t1, $a0, $t1 # $t1 = v+(k*4) (address of v[k]) lw $t0, 0($t1) # $t0 (temp) = v[k] lw $t2, 4($t1) # $t2 = v[k+1] sw $t2, 0($t1) # v[k] = $t2 (v[k+1]) sw $t0, 4($t1) # v[k+1] = $t0 (temp) jr $ra # return to calling routine
print_array:
move $t0, $zero # i = 0
while_loop:
bge $t0, $a1, end_While # exit loop if i >= size of array
li $v0, 1 # print integer value
lw $a0, ($a0) # load integer from array into $a0 {this is giving me / Runtime exception at 0x00400154: fetch address not aligned on word boundary
syscall
li $v0, 4 # print space
la $a0, space
syscall
addi $t0, $t0, 1 # increment counter
addi $a0, $a0, 4 # increment array index
j while_loop
end_While:
li $v0, 4 # print new line
la $a0, newline
syscall
jr $ra
...
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started