format ELF64 extrn printf public main section '.text' executable align 64 main: push rbp mov rbp,rsp movdqa xmm6,dqword[denom] movdqa xmm2,dqword[numer] movdqa xmm3,dqword[add4] movdqa xmm4,xmm2 movdqa xmm5,dqword[zero] mov r12,10000000 align 64 top: divpd xmm2,xmm6 addpd xmm5,xmm2 movdqa xmm2,xmm4 addpd xmm6,xmm3 divpd xmm2,xmm6 addpd xmm5,xmm2 movdqa xmm2,xmm4 addpd xmm6,xmm3 divpd xmm2,xmm6 addpd xmm5,xmm2 movdqa xmm2,xmm4 addpd xmm6,xmm3 divpd xmm2,xmm6 addpd xmm5,xmm2 movdqa xmm2,xmm4 addpd xmm6,xmm3 sub r12,1 jnz top mov r12,10000000 movdqa xmm1,xmm5 movdqa xmm0,xmm6 haddpd xmm1,xmm1 mov eax,2 mov edi,msg call printf jmp top leave ret section '.data' writable align 16 denom: dq 1.0,3.0 numer: dq 4.0,-4.0 add4: dq 4.0,4.0 zero: dq 0.0,0.0 msg db "1/%.0f - %50.48f",0xA,0