Почему команда атомарного обмена, которая может использоваться для реализации спин-блокировок, обменивается данными между регистром и ячейкой памяти, а не обменивается содержимым двух регистров?
Смысл в том, чтобы изменить память атомарно, вы ничего не получите, просто поменяв регистры вокруг, потому что они все равно содержат только временные данные.