Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: fakultät ausrechnen - Exception wenn Wert zu groß wird

  Alt 24. Jun 2009, 22: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.
  Mit Zitat antworten Zitat