Hallo, ich habe z.B. folgende Bitkombination: "01100100" wie kann ich die Bits in ASM drehen bzw. spiegeln, so daß: "00100110" herauskommt ? Achso, ich verwende einen PIC16F627.
Damit wird nur die untere und oberer Hälfte des Bytes getauscht, glaube ich...
Ich würde in einer Schleife die Bits oben herausschieben und diese herausgeschobenen Bits unten wieder hereinschieben (Oder andersherum ;))
Um Simons Luxus-NOP gradezuziehen: auf der gleichen Seite rein wie raus, sonst bleibt alles beim Alten.
In "C" sähe das dann so aus. Vielleicht hilfts dem Verständnis auch wenns kein ASM ist.
1 | for ( i = 0; i < 8; i++ ) |
2 | {
|
3 | gespiegelt |= original & 0x80; |
4 | original <<= 1; |
5 | gespiegelt >>= 1; |
6 | }
|
@ARM-Fan, das ist leider nicht richtig. Der dreht einmal zu oft. So passt es:
1 | for ( i = 0; i < 8; i++ ) |
2 | {
|
3 | gespiegelt >>= 1; |
4 | gespiegelt |= original & 0x80; |
5 | original <<= 1; |
6 | }
|
Gruß, Florian
A.K. wrote: > Um Simons Luxus-NOP gradezuziehen: auf der gleichen Seite rein wie raus, > sonst bleibt alles beim Alten. HUST Ja... :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.