Ovaj assembly kod implementira aproksimaciju funkcije sin(x) pomoću Tejlorovog reda (Maklorenove serije). Funkcija ima sledeći prototip u jeziku C i aproksimira funkciju sin(x) korišćenjem prvih n članova Tejlorovog reda:
float sin_aprox(float x, int n);

Koristi SIMD instrukcije (SSE – xmm registri) za efikasnu paralelnu obradu više članova serije istovremeno.
Ulazni argumenti:

xmm0: vrednost za koju računamo sinus (ulazni float x).
rdi: broj članova u Tejlorovom razvoju (int n).
Povratna vrednost:

Aproksimacija sinusa od x vraća se u registru xmm0.
Ključni koraci:
Registri xmm se inicijalizuju faktorijelima i stepenuju vrednost x za izračunavanje članova serije.
Četiri člana serije obrađuju se paralelno (x, -x³, x⁵, -x⁷).
U petlji po_4 se računa narednih nekoliko članova serije istovremeno, dok se broj traženih članova ne iscrpi.
Nakon petlje, dobijeni članovi serije se sabiraju horizontalno da bi se dobila konačna suma (aproksimacija sinusa).

Rezime instrukcija u kodu:
cvtsi2ss – konverzija celobrojne vrednosti u float.
shufps – mešanje i kopiranje vrednosti unutar SIMD registra.
mulss/mulps – množenje pojedinačnih/više float vrednosti.
divps – deljenje paralelnih float vrednosti.
addps/addss – sabiranje paralelnih/pojedinačnih float vrednosti.
xorps – resetovanje vrednosti SIMD registra.

Prevesti sa:
as -o 1.o 1.s
gcc -c -o main.o 1.c
gcc 1.o main.o -lm

-lm opcija je zbog biblioteke math, ta opcija mora uvek da se doda kada koristimo biblioteku math u nasem C kodu

