Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
Delphi 2007 Professional
|
Re: Optimallösung gesucht: Little Endian <-> Big Endia
6. Mai 2008, 21: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;
|