From afda6f12adf869ca9b35eae215b2aa83b87de39a Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Wed, 2 Jan 2008 03:55:22 +0000 Subject: Initial import. git-svn-id: svn://mattst88.com/svn/x86_64-assembly/trunk@1 a323887f-d61c-418c-83a5-2e06a2a01087 --- leibniz.asm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 leibniz.asm (limited to 'leibniz.asm') diff --git a/leibniz.asm b/leibniz.asm new file mode 100644 index 0000000..e4f5653 --- /dev/null +++ b/leibniz.asm @@ -0,0 +1,62 @@ +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 -- cgit v1.2.3