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