title: What does this dollar sign mean in __asm?
body: <p>I tried googling this and I couldn't find anything informative enough for my understanding.</p>
  
  <pre><code>int i;
  char msg1[] = "odd";
  char msg2[] = "even";
  char *ptr;
  __asm__("                   \
      movl i, %eax\n\
          andl $1, %eax\n\
          jz  zero\n\
          movl $msg1, %eax\n\
          jmp done\n\
  zero:\n\
          movl $msg2, %eax\n\
  done:\n\
          movl %eax, ptr\n\
    ");
  </code></pre>
  
  <p>Why does some need <code>$</code> and the other (such as i) not have a <code>$</code> sign?</p>