Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.286 Beiträge
 
Delphi 12 Athens
 
#14

Re: Optimallösung gesucht: Little Endian <-> Big Endia

  Alt 6. Mai 2008, 20:05
besser kommt man in dem Sinne, daß nun integerweise gearbeitet wird, also mit 2*16 Bit ... wobei die 32 Bit-CPU da doch optimaler arbeitet
Delphi-Quellcode:
procedure SwapString(Var S: WideString);
asm
  mov eax, [eax]

  test eax, eax
  jz @exit

  mov ecx, [eax - 4]
  shr ecx, 1

  push ecx
  shr ecx, 1

  jz @onechar

  @loop:

  mov edx, [eax]
  bswap edx
  rol edx, 16
  mov [eax], edx

  add eax, 4
  dec ecx
  jnz @loop

  @onechar:

  pop ecx
  and ecx, $01
  jz @exit

  mov dx, [eax]
  xchg dl, dh
  mov [eax], dx

  @exit:
end;
ach, da ich eh grad etwas zuviel Zeit hatte (blöd, wenn man auf was warten muß )
ist aber noch ungetestet
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat