.data? r0 dd ? r1 dd ? .code mov eax, 1 ; n=1; mov ecx, 3 ; d0=3; mov edx, 7 ; d1=7; xor ebp, ebp ; i=0; @@: mul eax, edx ; n=n*d1; add eax, ecx ; n=n+d0; mul ecx, edx ; d0=d0*d1; add edx, 4 ; d1=d1+4 inc ebp ; i++ cmp ebp, 1000 ; i<1000 jne @f ; jump to @@ if i<1000 div eax, ecx ; n/d0; mov offset r0, eax ; r0=n/d0; mov eax, 1 ; n=1; mov ecx, 5 ; d0=5; mov edx, 9 ; d1=9; xor ebp, ebp ; i=0; @@: mul eax, edx ; n=n*d1; add eax, ecx ; n=n+d0; mul ecx, edx ; d0=d0*d1; add edx, 4 ; d1=d1+4 inc ebp ; i++ cmp ebp, 1000 ; i<1000 jne @f ; jump to @@ if i<1000 div eax, ecx ; n/d0; mov offset r0, eax ; r1=n/d0; sub offset r0, offset r1 ;r0=r0-r1; mul offset r0, 4 ;r0=r0*4;