【发布时间】:2019-01-06 21:46:38
【问题描述】:
它是否交换 %eax 和 value stored at address%ecxx 并将总和存储在 address%ecx 中?
【问题讨论】:
它是否交换 %eax 和 value stored at address%ecxx 并将总和存储在 address%ecx 中?
【问题讨论】:
指令XADD ...
...将第一个操作数(目标操作数)与第二个操作数(源操作数)交换,然后将两个值的总和加载到目标操作数中。
所以,根据它的操作,它执行如下微码:
TEMP ← SRC + DEST;
SRC ← DEST;
DEST ← TEMP;
在你的情况下,这意味着xadd %eax, (%ecx)
EAX 的值加上ECX 指向的地址处的值
ECX指向的地址的值移动到EAX
ECX指向的地址
该指令可以与LOCK 前缀组合,因此可以原子地执行。
【讨论】: