内联汇编问题,新手求大佬解答。

刚接触内联汇编,下面哪里出错了。。。为什么都可以运行。。。可以详细的跟我讲一下吗?

#include <stdio.h>

int main() {
    //想实现一下将ccc的值放入寄存器内然后再存入rrr中
    int ccc = 9;
    int rrr = 0;
    asm volatile ("movl %1,%%ebx\n\t"
         "movl %%ebx,%0\n\t"     //"movl %0,%%ebx\n\t" 为啥这输出也是9?
         :"=a"(rrr)
         :"a"(ccc));            //为啥都有a约束了,还是可以使用bx寄存器
    printf("%d\n",rrr);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^