ST
Size: a a a
КП
КП
КП
КП
КП
КП
EK
bts фактически состоит из нескольких операций: прочитать значение из памяти, установить бит, записать обратно. Если второе ядро, работая параллельно, вклинится в этот процесс, то результат нарушится. Например, первое ядро прочитало значение из памяти, там 0. Пока оно его модифицировало, второе ядро тоже прочитало и там до сих пор находится 0. Что получилось в итоге? Оба прошли в критическую секцию. LOCK делает так, что пока первый процессор не выполнит всю инструкцию, второй будет ждать.КП
КП
КП
КП
EK
bt [rax],0 явно короче, чемmov edx,1
xchg [rax],rdx
test edx,edxEK
КП
КП
EK
КП
bt [rax],0 явно короче, чемmov edx,1
xchg [rax],rdx
test edx,edxКП