title: x86 simple mov instruction
body: <p>This is a simple question but I can't find reliable answers on google.</p>
  
  <p>What does this instruction mean:</p>
  
  <pre><code>movl %eax, (%esi, %ecx, 4)
  </code></pre>
  
  <p>Is it move the value at register <code>eax</code> to the value in memory that <code>(%esi, %ecx, 4)</code> is pointing too?</p>
  
  <p><code>(%esi, %ecx, 4)</code> is for an array. So it means Array[Xs + 4i] where Xs is the starting point in memory for the Array and i is just an offset in the integer array.</p>