交换吗 %eax value stored at address%ecxx 并将总数存储在 address%ecx ?
%eax
value stored at address%ecxx
address%ecx
指令 XADD ...
XADD
…将第一个操作数(目标操作数)与第二个操作数(源操作数)交换,然后将两个值之和加载到目标操作数中。
那么根据它的 活动 ,它执行以下微码:
TEMP â SRC + DEST; SRC â DEST; DEST â TEMP;
在你的情况下,这意味着 xadd %eax, (%ecx)
xadd %eax, (%ecx)
EAX
ECX
LOCK 前缀,因此可以原子化执行。
LOCK