title: jmp instruction *%eax
body: <p>In the paper for Google Native Client, the authors define a <code>nacljmp</code> as these two instructions:</p>
  
  <pre><code>and   $0xffffffe0, %eax   # Clears the 5 least significant bits in %eax.
  jmp   *%eax
  </code></pre>
  
  <p>First, I can see they clear the 5 least significant bits to round the pointer down to a 32-byte alignment boundary before jumping to it.  Perhaps for a tagged-pointer implementation using the low 5 bits for data.</p>
  
  <p>However, what does the asterisk mean before <code>%eax</code>?</p>
  
  <p>I've searched a number of tutorials on x86 assembly without much luck.</p>