Will eigentlich nur wissen ob Bit 0 des IO-Registers GPR0 mit dem des Registers R16 übereinstimmt. Gehts kürzer als in r17,GPR_GPR0 andi r16,1 andi r17,1 cp r16,r17 breq ... ;ist gleich
:
Verschoben durch Moderator
Ohne den Prozessor zu kennen, würde ich das vorschlagen:
1 | in r17,GPR_GPR0 |
2 | xor r17,r16 |
3 | andi r17,1 |
4 | breq ... ;ist gleich |
1 | in r17, GPR_GPR0 |
2 | andi r17, r16 |
3 | sbrcc r17, 0 |
4 | rjmp .... ; bit set |
5 | ...; bit cleared |
Theo schrieb: > Mist, sollte "and" statt "andi" sein. "geschrieben auf meinem iPhone" (da wird das i immer automatisch angehängt) ;-)
:
Bearbeitet durch User
Mario M. schrieb: > Theo schrieb: >> andi r17, r16 > > Er wollte Gleichheit testen und nicht dass beide Bits gesetzt sind. Stimmt. Dann "xor" statt "andi".
Danke fürs Mitmachen! Immerhin eine Anweisung eingespart mit xor (eor) ;-)
Noch kürzer wirds, wenn die zu vergleichenden Bits auf Bit7 sind.
1 | in r17,GPR_GPR0 |
2 | eor r17,r16 |
3 | brmi ... ;ist _un_gleich |
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.