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

Instrucțiunea XCHG în x86_64: Schimb de Valori și Blocare Hardware în Assembly (x86_64)

Sintaxă
xchg reg, reg
xchg reg, [mem]

Instrucțiunea XCHG (Exchange) interschimbă valorile din doi operanzi fără a necesita un al treilea registru intermediar temporar. Când unul dintre operanzi este o locație de memorie, instrucțiunea activează automat blocarea hardware a magistralei (prefixul LOCK implicit).

; Schimb rapid între două registre:
mov rax, 10
mov rbx, 20
xchg rax, rbx                   ; Acum RAX conține 20, iar RBX conține 10

; Primitivă atomică pentru Spinlock (Test-and-Set hardware):
mov eax, 1                      ; Valoarea blocată
spin_loop:
xchg eax, [rel lacat_mutex]     ; Schimb atomic (LOCK implicit)
test eax, eax                   ; Verifică dacă era deja liber (0)
jnz spin_loop                   ; Dacă era 1 (blocat), reîncearcă

Cost de performanță: Folosirea XCHG pe memorie este o operațiune costisitoare deoarece invalidează cache-ul celorlalte nuclee CPU pentru a garanta atomicitatea.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Instrucțiunea XCHG în x86_64: Schimb de Valori și Blocare Hardware

Ai o nelămurire despre utilizarea comenzii Instrucțiunea XCHG în x86_64: Schimb de Valori și Blocare Hardware 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.