Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Instrucțiunea XADD în x86_64: Schimb și Adunare Atomică pentru Contoare în Assembly (x86_64)

Sintaxă
lock xadd dest, src

Instrucțiunea XADD (Exchange and Add) interschimbă prima valoare cu a doua și apoi salvează suma lor în destinație. În combinație cu prefixul LOCK, realizează operația fetch-and-add atomică fără bucle de reîncercare.

; Incrementare atomică a unui contor partajat în multithreading:
; int64_t atomic_fetch_add(int64_t *ptr, int64_t valoare)
; RDI = adresa contorului, RSI = valoarea de adăugat

global atomic_fetch_add
atomic_fetch_add:
    mov rax, rsi                ; RAX conține valoarea adăugată
    lock xadd [rdi], rax        ; [RDI] = [RDI] + RAX, iar RAX primește valoarea VECHE din memorie
    ; RAX conține valoarea anterioară operației (fetch_and_add)
    ret

Aplicație: Esențială pentru alocatoare de memorie concurente, cozi lock-free (Michael-Scott queue) și gestionarea identificatorilor de sesiune unici.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Instrucțiunea XADD în x86_64: Schimb și Adunare Atomică pentru Contoare

Ai o nelămurire despre utilizarea comenzii Instrucțiunea XADD în x86_64: Schimb și Adunare Atomică pentru Contoare sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.