title: Assembly 64bit - movl, movq. Interchanging is okay?
body: <h3>Context:</h3>
  <p>Learning GAS assembly on 64 bit linux.
  Many tutorials are for 32-bit assembly.</p>
  <p>Difficult to bushwhack through x86_64 assembly.</p>
  <h3>Question:</h3>
  <p>When I compile a c program with gcc, I still see some <code>%eax</code> and <code>movl</code>.</p>
  <p>I mostly play with <code>int32_t</code>.</p>
  <p>But I thought that one <em>had</em> to use the 64 bits instructions on <code>x86_64</code> (like <code>rax</code>,<code>rbx</code> and so on).</p>
  <p>I don't understand very well. Shouldn't they be <code>%rax</code> and <code>movq</code> ?
  In my assembly programs, I should use <code>movq</code>, right ? even for 32 bits integers ?
  I am a lost beginner.</p>
  <p>Thanks</p>