Вызывает ли автоматическую блокировку инструкция XADD?

Тема в разделе "WASM.ASSEMBLER", создана пользователем Exx, 21 май 2009.

  1. Exx

    Exx New Member

    Публикаций:
    0
    Регистрация:
    21 май 2009
    Сообщения:
    2
    Здравствуйте,

    Вызывает ли автоматическую блокировку инструкция XADD?

    Известно, что XCHG вызывает автоматическую блокировку (The XCHG
    instruction always asserts the LOCK# signal regardless of the presence or absence of the LOCK
    prefix) и можно писать не lock xchg ..., а просто lock xchg.

    Верно ли тоже самое для инструкции xadd? Или по-другому, есть ли на практике разница между инструкциями xadd и lock xadd?

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

    Заранее спасибо.
     
  2. Exx

    Exx New Member

    Публикаций:
    0
    Регистрация:
    21 май 2009
    Сообщения:
    2
    Ссылки на источники очень приветствуются.
     
  3. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
     
  4. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    В описании LOCK (по Интел) в списке инструкций с автоматической вставкой LOCK есть только XCHG. Значит для XADD - LOCK нужен, если нужно atomic выполнение.