据说以“lock”为前缀的汇编指令是原子的。我想知道“锁”是否只能影响一条汇编指令;汇编指令本身不是原子的吗?
以下是 linux 内核中的原子函数示例:
static __inline__ int atomic_sub_and_test(int i, atomic_t *v)
{ unsigned char c;
__asm__ __volatile__(
LOCK "subl %2,%0; sete %1"
:"=m" (v->counter), "=qm" (c)
:"ir" (i), "m" (v->counter) : "memory");
return c; }
在这个例子中 subl 和 sete 可以被打断吗?