Factorial: Difference between revisions
m
→Iterative FreePascal
Line 6,175:
end;</lang>
=== Iterative FreePascal ===
{$mode objFPC}{R+}
<lang pascal>
(* Update for version 3.2.0 *)
(* Factorial works until 20! , which is good enough for me for now *)
(* replace qword with dword and rax,rcx with eax, ecx for 32-bit *)
(* for Factorial until 12! *)
VAR
F: qword;
BEGIN
Line 6,186 ⟶ 6,193:
asm
mov $1, %rax
mov n, %rcx
.Lloop1:
Line 6,193 ⟶ 6,200:
loopnz .Lloop1
mov %rax,
end;
Result := F ;
END;</lang>
=== Recursive ===
<lang pascal>function factorial(n: integer): integer;
|