Я читаю код smphello.s от allan cruse codeСборка: нужна ли инструкция xadd?
В следующей части он пытается установить сегмент стека для каждого процессора.
Дело в том, что он использовал xadd без использования префикса блокировки во время описания xadd, как в here. может быть префикс блокировки.
это ошибка или все в порядке? и почему ?
# setup an exclusive stack-area for this processor
mov $0x1000, %ax # paragraphs in segment
xadd %ax, newSS # 'atomic' xchg-and-add
mov %ax, %ss # segment-address in SS
xor %esp, %esp # top-of-stack into ESP
Да, он должен использовать 'lock'. Единственная инструкция, которая устанавливает блокировку сама по себе, - 'xchg'. – Jester
@becks: Есть ли проблема с моим ответом? – SonOfSun