Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#20

Re: Eine BigInt Klasse + RSA-Beispiel

  Alt 15. Jul 2007, 14:34
Delphi-Quellcode:

function DoAddC(Digits: Pointer; Value: Cardinal; Count: Integer): Cardinal;
asm
         
         LEA EAX,[EAX + ECX]
         NEG ECX
         ADD [EAX + ECX],EDX
         MOV EDX, 0
         JMP @@2
@@1: ADC [EAX + ECX],EDX
@@2: JNC @@3
         INC ECX
         JNZ @@1
@@3: ADC EDX,EDX
         MOV EAX,EDX
end;

procedure TBigInt.Add(Value: Cardinal);
var
  Carry: Cardinal;
begin
  Carry := DoAddC(@FDigits, Value, Length(FDigits));
  if Carry <> 0 then
  begin
    SetLength(FDigits, Length(FDigits) +1);
    FDigits[High(FDigits)] := Carry;
  end;
end;
Gruß Hagen
  Mit Zitat antworten Zitat