[fpc-pascal] Reversing bit-order of byte

Ludo Brands ludo.brands at free.fr
Thu May 3 12:54:56 CEST 2012


> Thanks all for your replies.
> I already found the RBIT-instruction. I also found out I need 
> to study 
> the arm assembly language ;-)
> 
> But how do I get my variable ? Is that in some register ? Is 
> there any 
> documentation about such things ? Then I can use inline assembly.
> 

ARM has different ABI's. A pragmatic solution is to create a full pascal
(inline if you like) function with the function signature you like and a
dummy body, look at the assembler generated (use debug info whe compiling)
and then insert your instructions. For example

Function ReverseBits(b:byte):byte;

Begin
  result:=b shl 2;
End;

Look at how result:=b shl 2 is implemented and you'll find immmedialy the
registers used. Next you replace result:=b shl 2 with your asm block.

Note that RBIT is a thumb 2 instruction.

Ludo




More information about the fpc-pascal mailing list