Hallo, steh gerade auf dem Schlauch ob das Invertieren eines beliebigen Registerbits in ASM nicht effektiver geht als so hier, z.B. mit r16 und Bit 4:
1 | sbrs r16,4 |
2 | rjmp m1 |
3 | cbr r16,8 |
4 | rjmp m2 |
5 | m1: sbr r16,8 |
6 | m2: |
Ideen? Gruß moby
|
Forum: Mikrocontroller und Digitale Elektronik AVR/ASM: Bit in Register invertierenHallo, steh gerade auf dem Schlauch ob das Invertieren eines beliebigen Registerbits in ASM nicht effektiver geht als so hier, z.B. mit r16 und Bit 4:
Ideen? Gruß moby Leider gibt es kein EORI sondern nur ein EOR ld r17, 1<<4 eor r16, r17 Danke! Damit dürfte EOR nun erstmalig in meinem Programmieralltag Einzug halten :) @moby Und Achtung: das 1. Bit ist 0 Dein Beispiel funktioniert nicht! Ralf G. schrieb: > @moby > Und Achtung: das 1. Bit ist 0 > Dein Beispiel funktioniert nicht! Womit dann auch ganz zwanglos die Vorteile der Schreibweise cbr r16, (1<<4) gegenüber cbr r16,8 aufgezeigt wären. Im ersten steht die Bitnummer direkt dort und der Assembler rechnet das entsprechende Maskenbyte aus. Im zweiten hat der Programmierer das entsprechende Maskenbyte für sich im Kopf ausgerechnet und dabei prompt einen Fehler gemacht :-) Karl Heinz Buchegger schrieb: > und dabei prompt einen Fehler gemacht :-) Wie peinlich :-) Die Schreibweise sollte man diesbezüglich wirklich ändern, wenn nur der Zeichen-Mehraufwand nicht wäre :-(
Beitrag #5699683 wurde von einem Moderator gelöscht.
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
Noch kein Account? Hier anmelden.
|
|