[fpc-pascal] Reversing bit-order of byte

Sven Barth pascaldragon at googlemail.com
Thu May 3 18:00:07 CEST 2012


On 03.05.2012 10:50, David Butler wrote:
> If you want to go assembly:
>
> function ReverseBits(const Value: LongWord): LongWord; register; assembler;
> asm
>        BSWAP   EAX
>        MOV     EDX, EAX
>        AND     EAX, 0AAAAAAAAh
>        SHR     EAX, 1
>        AND     EDX, 055555555h
>        SHL     EDX, 1
>        OR      EAX, EDX
>        MOV     EDX, EAX
>        AND     EAX, 0CCCCCCCCh
>        SHR     EAX, 2
>        AND     EDX, 033333333h
>        SHL     EDX, 2
>        OR      EAX, EDX
>        MOV     EDX, EAX
>        AND     EAX, 0F0F0F0F0h
>        SHR     EAX, 4
>        AND     EDX, 00F0F0F0Fh
>        SHL     EDX, 4
>        OR      EAX, EDX
> end;

You know that he asked for ARM not x86?

Regards,
Sven



More information about the fpc-pascal mailing list