title: Accessing the low 32-bits of r8 through r15
body: <p>How can I write a 32-bit value to the low doubleword of the registers r8-r15 with asm()?
  The following code won't compile:</p>
  
  <pre><code>#include &lt;stdlib.h&gt;
  #include &lt;stdio.h&gt;
  int main()
      {
      float f0,f1,f2=-2.4f;
      asm volatile
      (
          "movl %2, %%r8\n"
          "movl %%r8, %1\n"
          "movl %1, %%r15\n"
          "movl %%r15, %0"
          :"=r"(f0,f1)
          :"r"(f1,f2)
          :"%r8,%r15"
      );
      printf("%f\n",f0);
      system("pause");
      return 0;
      }
  </code></pre>
  
  <p>The error I get:</p>
  
  <pre><code>unknown register name '%r8,%r15' in 'asm'
  </code></pre>
  
  <p>Note that It is a x64 program so r8-r15 registers should be available.</p>