??? 04/01/05 16:11 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#90818 - Re: Byte Bit Reversal Responding to: ???'s previous message |
With regard to the code in my earlier post, perhaps I should have said compact and non-iterative.
The code in my previous post gives a complete Keil C51 implementation with a simple switch between too versions. The first was original to me and may be of some interest. I later found Peter Dannegger's method that is significantly quicker and more compact. In case you are not using Keil, the assembly code for the Peter Dannegger version boils down to just this: ;C 76543210 ;x hgfedcba MOV C,Acc.1 ;b hgfedcba RLC A ;h gfedcbab MOV Acc.2,C ;h gfedchab MOV C,Acc.3 ;c gfedchab RLC A ;g fedchabc MOV Acc.4,C ;g fedghabc MOV C,Acc.5 ;d fedghabc RLC A ;f edghabcd MOV Acc.6,C ;f efghabcd SWAP A ;f abcdefgh The above code reverses all the bits in a byte held in the accumulator and it only trashes the carry. (I do wish I had thought of it!) |