> Hi, > > thanks for all the input! > Leon, this really is a cool function. It will go to my collection ;-). > > Though I used your version, Steve. Worked out of the box! > Why does it say "+r" ?
I think the "+r" means that it is both an input and an output, allowing it to be initialised at the C level ("unsigned char tmp = 0"). Of course, this initialisation is not actually needed, since all 8 bits of the original tmp get shifted out, so an instruction could be saved by using plain "unsigned char tmp;", and changing to "=r". David > And, perhaps you could add the "gcc manual hint" to the 1.ยง in chapter 6 (didn't > even had the idea to look there, too). > > Greetz and thanks, > > Georg > > > Steve Underwood wrote: > > Hi Georg, > > > > I haven't tested this, but to embed the assembly language you need > > something like the following. If you look in the mspgcc documentation > > you will find some information about this. If you look in the GNU GCC > > documentation you will find some more. However, this area is not as well > > documented as it might be, with clear examples, etc. Figuring out > > exactly how to use those dependency fields is not easy. > > > > Regards, > > Steve > > > > unsigned char reverse(unsigned char b) > > { > > unsigned char tmp = 0; > > > > for( i=0; i<8; i++ ) > > { > > __asm__ ( > > " rrc.b %[b] \n" > > " rrl.b %[tmp] \n" > > : [tmp] "+r"(tmp) > > : [b] "r"(b)); > > } > > return tmp; > > } > > > > Georg Ritter wrote: > > > >> Good morning! > >> > >> I'm looking for a proper implementation of a bitwisereverse function > >> of a byte (1010 0001 becomes: 1000 0101). I want to replace an ugly > >> and clumpsy function I used in testing. > >> > >> I would like to write smth like: > >> > >> unsigned char reverse(unsigned char b) > >> { > >> unsigned char tmp=0; > >> for( i=0; i<8; i++ ) > >> { > >> // RRC.B of b > >> // RRL.B into tmp > >> } > >> return tmp; > >> } > >> > >> There's no real "C" way of doing it, isn't it? So what could the > >> inline asmbly line for that look like. I never used it before, and > >> it's tricky and documents didn't enlighten my too much. So my versions > >> either didn't compile or didn't work. > >> > >> Or is there a smaller (in terms of code size) way of doing the > >> reversion (hacker contest ;-) )? > >.. > > > > > ------------------------------------------------------- > The SF.Net email is sponsored by EclipseCon 2004 > Premiere Conference on Open Tools Development and Integration > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. > http://www.eclipsecon.org/osdn > _______________________________________________ > Mspgcc-users mailing list > Mspgcc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mspgcc-users > > >