asm("imul %2, %0"
   :"=&r"(a)
   :"r"(a),"r"(b));
だよね