Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#120

Re: Positive Zahlen in negative umwandeln

  Alt 31. Okt 2008, 09:58
@Hador, ich kenn mich nicht so aus mit Assembler.
Deswegen tüttel ich's mal nach Delphi, mit kleinen Änderungen um.

Delphi-Quellcode:
function Neg(EAX: Integer): Integer;
var
  EDX, ECX: integer;
label
  DUMDIDUM, WUPPDI, DIDUMDI;
begin
  EDX := EAX; // MOV EDX, EAX
  EDX := not EDX + 1; // NEG EDX
  if EDX >= EAX then // CMP EDX, EAX
   goto DUMDIDUM; // JAE @DUMDIDUM
  EAX := not EAX + 1; // NEG EAX
  DUMDIDUM: // @DUMDIDUM:
    EDX := EAX; // MOV EDX, EAX
    INC(EAX); // INC EAX
  WUPPDI: // @WUPPDI:
    DEC(EAX); // DEC EAX
    ECX := EAX; // MOV ECX, EAX
    ECX := not ECX + 1; // NEG ECX
    if ECX = EDX then // CMP ECX, EDX
      goto WUPPDI; // JNE @WUPPDI
  DIDUMDI: // @DIDUMDI:
    Result := EDX; // NOPpen tun wir heute nich, nich ?
end;
Oder einfavh so:
Delphi-Quellcode:
function Neg(ToNegativateValue: Integer): Integer;
begin
  Result := not ToNegativateValue + 1;
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser