它会交换%eax
和value stored at address%ecxx
并将金额存储在address%ecx
中吗?
答案 0 :(得分:1)
指令XADD
...
...将第一个操作数(目标操作数)与第二个操作数(源操作数)交换,然后将两个值的和加载到目标操作数中。
因此,根据其操作,它执行以下微代码:
TEMP ← SRC + DEST;
SRC ← DEST;
DEST ← TEMP;
在您的情况下,这意味着xadd %eax, (%ecx)
EAX
的值加上ECX
指向的地址处的值ECX
指向的地址上的值移动到EAX
ECX
指向的地址该指令可以与LOCK
前缀结合使用,因此可以自动执行。