inline char q_atomic_swp(volatile char *ptr, char newval)
{
register char ret;
asm volatile("swpb %0,%2,[%3]"
: "=&r"(ret), "=m" (*ptr)
: "r"(newval), "r"(ptr)
: "cc", "memory");
return ret;
}
asm什么意思 volatile什么意思?双括号引起来表示什么"=&r"(ret), "=m" (*ptr)
------解决思路----------------------
http://www.cppblog.com/jb8164/archive/2008/02/26/43260.html
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
里面都有