title: MIPS to C Translation
body: <p>I need to translate some MIPS assembly instructions to C code. I think I got it, but it seems counter-intuitive. Any help? We have variables f, g, h, i, j stored in registers $s0, $s1, $s2, $s3 and $s4 respectively. The base of arrays A and B are stored in $s6 and $s7 respectively. 4 byte words. Comments in the code are my own. </p>
  
  <pre><code>addi $t0, $s6, 4   # $t0 = A[1]
  add $t1, $s6, $0   # $t1 = A[0]
  sw $t1, 0($t0)     # $t0 = A[0]
  lw $t0, 0($t0)     # $t0 = A[0]
  add $s0, $t1, $t0  # f = A[0] + A[0]
  </code></pre>
  
  <p>I just feel like I'm wrong. Why make $t0 A[1] first if we never use it?</p>