Registriert seit: 14. Aug 2005
1.859 Beiträge
Delphi 11 Alexandria
|
Re: fakultät ausrechnen - Exception wenn Wert zu groß wird
24. Jun 2009, 23:41
Hallo mirage228,
dann ist die Berechnung, aber nicht mehr nur mit Registern durchzuführen bei 64Bit.
Delphi-Quellcode:
function ASMFacIterativ(n: word): Cardinal;
asm
PUSH ECX
CMP EAX, 20
JG @@ZuViel
CMP EAX, 1
JLE @@NullOderEins
MOV ECX, EAX
DEC ECX
@@Weiter:
MUL ECX
LOOP @@Weiter
JMP @@Schluss
@@ZuViel:
XOR EAX, EAX
JMP @@Schluss
@@NullOderEins: // Hier ladet er bei -Zahlen, bei 0 und bei 1
CMP EAX, 0
JE @@MacheEins
CMP EAX, 1
JE @@MacheEins
MOV EAX, 0
JMP @@Schluss
@@MacheEins:
OR EAX,1
@@Schluss:
POP ECX
end;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
|
|
Zitat
|