1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
unit Test
interface
var
vars: array of double;
FTx, FTy: double;
FPx, FPy: double;
FAngle: double;
procedure Julia;
implementation
procedure Julia;
begin
asm
fld qword ptr [ebx + FAngle]
fld1
fld1
faddp
fdivp st(1), st
mov eax, 2
call System.@RandInt
shr eax, 1
jnc @skip
fldpi
faddp
@skip:
fsincos
fld qword ptr [ebx + FTx]
fmul st, st
fld qword ptr [ebx + FTy]
fmul st, st
faddp
fsqrt
fsqrt
mov edx, [ebx + vars]
fmul qword ptr [edx + 13*8]
fmul st(2), st
fmulp st(1), st
fadd qword ptr [ebx + FPx]
fstp qword ptr [ebx + FPx]
fadd qword ptr [ebx + FPy]
fstp qword ptr [ebx + FPy]
fwait
end;
end;
end. |
Partager