title: array on MIPS Assembly
body: <p>I'm trying to write a mips function which return the position of the maximum value but I'm getting this exeption <em>(Error in /home/ams/Bureau/part2a line 21: Runtime exception at 0x00400028: address out of range 0x00000000)</em></p>
  <pre><code># MIPS assembly code
  
  # $s0 = array base address, $s1 = i
  # initialization code
  
  main: lui  $s0, 0x23B8           # $s0 = 0x23B80000
       ori  $s0, $s0, 0xF000   # $s0 = 0x23B8F000
       addi $s1, $0, 0            # i = 0
       addi $t2, $0, 1000      # $t2 = 1000
       addi $t3, $0, 0            # $t3 =   max
       addi $s4, $0 , 0           #  $s4 = max indice
  
  max:
  loop: slt  $t0, $s1, $t2      # i &lt; 1000?
       beq  $t0, $0, done      # if not then done
       sll $t0, $s1, 2              # $t0 = i * 4 
       add  $t0, $t0, $s0      # address of array[i]
       
       
       lw   $t1, 0($t0)        # $t1 = array[i] ERROR HERE 
       slt $t5, $t3, $t1      # max &lt; array[i]
       beq $t5, $0,else   # if not then ense
       addi $t3,$t1, 0    # $t3 =: array[i]
       addi $s4, $s1,0    # $s4 =: i 
       #end
       
       else:   
       addi $s1, $s1, 1        # i = i + 1
       j    loop               # repeat
  
  done: 
      addi  $v0, $s4, 0        # retval = max
      jr    $ra                # Return
  </code></pre>
  <p>any suggestion please?</p>