segment .data
a dd 3.14159
align 8
b dq 3.14159265358979323846
c dd 0.0
two_pi dq 6.28318530717958647692
segment .text
global main
main:
push rbp
mov rbp, rsp
cvtss2sd xmm0, [a] ; get a into xmm0 as a double
addsd xmm0, [b] ; add a double to a
cvtsd2ss xmm0, xmm0 ; convert to float
movss [c], xmm0
leave
ret