Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
Delphi 2007 Professional
|
Re: Optimallösung gesucht: Little Endian <-> Big Endia
6. Mai 2008, 22:25
Dann halt mit WideString und dec/jnz
Delphi-Quellcode:
procedure SwapUCS2( var AValue: WideString); register;
asm
mov eax, [AValue]
or eax, eax
jz @@exit // Empty (nil)
mov ecx, [eax - 4] // Relies on internal BSTR knowlegde!
shr ecx, 1
// jz @@exit // Should not happen (Empty <> nil)
@@loop: dec ecx
ror word ptr [eax + ecx * 2], 8
jnz @@loop
@@exit:
end;
|