Clarification on MIPS sw and lw
If &amp;A is stored in $s0, then A[1] = 2 compiles to

ori $t0, $0, 2      # Move 2 into $t0
sw $t0, 4($s0)      # Store $t0 into $s0 + 4 (because ints are 4 bytes)


As mentioned in the comments, your code doesn't make a lot of sense because you seem to be doing something resembling x = A[1] +2. You have to use a sw because the C code stores a value to the array.