我尝试了谷歌搜索这一点,我无法找到任何足够的信息,为我的理解。这个美元符号在__asm中意味着什么?
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\
");
为什么一些需要$
和其他(如我)没有$
标志?
'msg1'也是C变量。为什么它有美元符号? – Gabe 2011-03-20 05:50:58
msg1是一个标签,$ msg1给出了该内存位置的地址。 – Zimbabao 2011-03-20 05:55:32