Einzelnen Beitrag anzeigen

Benutzerbild von nicodex
nicodex

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

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

  Alt 6. Mai 2008, 21: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;
  Mit Zitat antworten Zitat