Zitat von
Missionar:
Gibt es da nicht etwas Performanteres, wie z. B.
Delphi-Quellcode:
procedure NEG(VAR Int: Integer);
assembler
neg ACX;
end;
Wenn schon
ASM, dann aber auch richtig. Bei folgender Funktion kommt immer eine negative Zahl heraus.
Das ganze ist natürlich hochoptimiert
Delphi-Quellcode:
function Neg(i: Integer): Integer;
asm
MOV EDX, EAX
NEG EDX
CMP EDX, EAX
JAE @DUMDIDUM
NEG EAX
@DUMDIDUM:
MOV EDX, EAX
INC EAX
@
WUPPDI:
DEC EAX
MOV ECX, EAX
NEG ECX
CMP ECX, EDX
JNE @
WUPPDI
@DIDUMDI:
NOP
end;