Înainte de apariția SSE, calculele pe numere reale erau executate de coprocesorul matematic x87 FPU organizat ca o stivă circulară de 8 registre pe 80 de biți de precizie extinsă (ST(0) până la ST(7)).
section .data
valoare_a: dq 12.5
valoare_b: dq 3.0
rezultat: dq 0.0
section .text
calculeaza_fpu:
fld qword [rel valoare_a] ; Încarcă valoarea_a în vârful stivei ST(0)
fld qword [rel valoare_b] ; ST(0) = valoare_b, ST(1) = valoare_a
faddp st1, st0 ; ST(1) = ST(1) + ST(0) și scoate (pop) elementul din vârf
fstp qword [rel rezultat] ; Salvează rezultatul din ST(0) în memorie și golește stiva
ret
Statut în x86_64: Deși toate procesoarele pe 64 de biți utilizează SSE/AVX pentru calcule cu virgulă mobilă conform convențiilor moderne ABI, coprocesorul x87 rămâne disponibil pentru precizie extinsă pe 80 de biți (long double în GCC).
Întrebări & Exemple de Cod:
Arhitectura Tradițională x87 FPU: Registrele ST(0)-ST(7) și Instrucțiunile FLD/FSTPAi o nelămurire despre utilizarea comenzii
Arhitectura Tradițională x87 FPU: Registrele ST(0)-ST(7) și Instrucțiunile FLD/FSTPsau 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.