#include <stdlib.h>
static inline uint
xchg(volatile unsigned int *addr, unsigned int newval)
{
uint result;
asm volatile("lock; xchgl %0, %1" : "+m" (*addr), "=a" (result) : "1" (newval) : "cc");
return result;
}
有人能告诉我这段代码到底做了什么吗?我的意思是我有一个想法或这个命令的一部分。"1" newval 是输入,"=a" 是刷新它之前的值并更新它。“m”用于内存操作,但我对这个函数的功能感到困惑。“+m”符号有什么作用?此函数是否执行类似 m=a; 的操作?米=新瓦尔;返回一个