【发布时间】:2013-07-18 20:27:10
【问题描述】:
我有一个 x86 汇编代码:
unsigned int oldval;
__asm__ __volatile__ (
"movl $1, %0 \n"
"lock xaddl %0, (%1) \n"
: "=a" (oldval) : "b" (n))l;
return oldval;
我想把它翻译成手臂组件。 arm 组件中是否有任何前缀与此处的“锁定”功能相同?
【问题讨论】:
-
在 ARMv6 及更高版本上有
LDREX/STREX,它允许您尝试读取-更新-写入循环,直到没有其他操作修改加载和存储之间的引用内存位置。 -
我会把它放在实际的响应中 - 听起来这是最好的方法。
-
ARM提供的通用同步概念是load-linked/store-conditional。