Я видел некоторую сборку x86 в источнике Qt:
q_atomic_increment:
movl 4(%esp), %ecx
lock
incl (%ecx)
mov $0,%eax
setne %al
ret
.align 4,0x90
.type q_atomic_increment,@function
.size q_atomic_increment,.-q_atomic_increment
-
Из Googling я знал, что команда
lock
заставит CPU блокировать шину, но я не знаю, когда процессор освобождает шину? -
Что касается всего кода выше, я не понимаю, как этот код реализует
Add
?