If you want to go assembly:<div><br></div><div><div>function ReverseBits(const Value: LongWord): LongWord; register; assembler;</div><div>asm</div><div>      BSWAP   EAX</div><div>      MOV     EDX, EAX</div><div>      AND     EAX, 0AAAAAAAAh</div>
<div>      SHR     EAX, 1</div><div>      AND     EDX, 055555555h</div><div>      SHL     EDX, 1</div><div>      OR      EAX, EDX</div><div>      MOV     EDX, EAX</div><div>      AND     EAX, 0CCCCCCCCh</div><div>      SHR     EAX, 2</div>
<div>      AND     EDX, 033333333h</div><div>      SHL     EDX, 2</div><div>      OR      EAX, EDX</div><div>      MOV     EDX, EAX</div><div>      AND     EAX, 0F0F0F0F0h</div><div>      SHR     EAX, 4</div><div>      AND     EDX, 00F0F0F0Fh</div>
<div>      SHL     EDX, 4</div><div>      OR      EAX, EDX</div><div>end;</div><div><br></div><br><div class="gmail_quote">On Thu, May 3, 2012 at 9:10 AM, Koenraad Lelong <span dir="ltr"><<a href="mailto:fpascal@brouwerij.homelinux.net" target="_blank">fpascal@brouwerij.homelinux.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I'm porting a driver, originally written in C, for an LCD to be used with an embedded arm-processor (STM32).<br>
The original driver uses SPI, my driver will use a USART in synchronous mode because the STM32 has no SPI for 9-bit. Unfortunately, the bit-order is reversed between SPI and USART transmission.<br>
Does anyone knows an efficient way to reverse bit-order of a byte for the arm-processor ? I'm going to look into the assembly language of the arm-processor, but maybe someone knows this immediately.<br>
For old processors like 8085 or Z80 I know how to do this, but arm-assembler is new to me.<br>
<br>
Thanks for any hints.<span class="HOEnZb"><font color="#888888"><br>
<br>
Koenraad Lelong.<br>
______________________________<u></u>_________________<br>
fpc-pascal maillist  -  <a href="mailto:fpc-pascal@lists.freepascal.org" target="_blank">fpc-pascal@lists.freepascal.<u></u>org</a><br>
<a href="http://lists.freepascal.org/mailman/listinfo/fpc-pascal" target="_blank">http://lists.freepascal.org/<u></u>mailman/listinfo/fpc-pascal</a><br>
</font></span></blockquote></div><br></div>