Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: [Assembler]: 2 Variabeln austauschen

  Alt 10. Aug 2006, 22:07
Hallo St.Pauli,

hast du einmal getestet, ob die vorgestellte Assembler-Version wirklich schneller ist als eine reine PASCAL-Version? Die folgende Routine sollte etwas schneller sein:

Delphi-Quellcode:
procedure Switch (var a, b: integer);
asm
  push ebx
  mov ecx,[eax]
  mov ebx,[edx]
  mov [edx],ecx
  mov [eax],ebx
  pop ebx
end;
Eine reine PASCAL-Lösung ist übrigens etwa gleich schnell. Da du in deinem Profil "Delphi 2005" angibst, könntest du aber mit einer INLINE-Prozedur noch etwas Zeit einsparen:

Delphi-Quellcode:
procedure Switch (var a, b: Integer); inline;
var
  t : Integer;
begin
  t := a;
  a := b;
  b := t;
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat