Einzelnen Beitrag anzeigen

Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#16

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

  Alt 6. Mai 2008, 20:38
Mögliche Assembler-Version für UCS2-Swap:
Delphi-Quellcode:
procedure SwapWords(var AWords; ACount: LongWord); register;
asm
        mov ecx, edx
        jecxz @@exit
@@loop: ror word ptr [eax + ecx * 2 - 2], 8
        loop @@loop
@@exit:
end;

procedure TestSwapWords();
var
  Value: WideString;
begin
  Value :=
    #$4800#$6500#$6C00#$6C00#$6F00#$2C00#$2000 +
    #$5700#$6F00#$7200#$6C00#$6400#$2100;
  SwapWords(Value[1], Length(Value));
  ShowMessage(Value);
end;
  Mit Zitat antworten Zitat