Ich habe keine Ahnung warum das nicht geht vielleicht ist es auch ein Denkfehler. Also ich will in dem reg r20 eines tinytn44 das Bit 4 setzen. Nutze daher den Befehl SBR r20,4 Ich Programmiere in Assembler. In der Simulation wird aber Bit 3 gesetzt, das raff ich einfach nicht da es in einem anderen Zusammenhang bei Bit 1 wunderbar funktioniert.
Robert M. wrote: > Ich habe keine Ahnung warum das nicht geht vielleicht ist es auch ein > Denkfehler. > Also ich will in dem reg r20 eines tinytn44 das Bit 4 setzen. Nutze > daher den Befehl > SBR r20,4 > Ich Programmiere in Assembler. > In der Simulation wird aber Bit 3 gesetzt, das raff ich einfach nicht da > es in einem anderen Zusammenhang bei Bit 1 wunderbar funktioniert. Du weißt aber, dass Bits in dem Fall von 0-7 bennant werden??
Dezimal 4 ist in Binärschreibweise halt nunmal 0b00000100 Das ist also Bit 3. Wenn, dann müsstest du SBR r20, 8 schreiben
deswegen schreibe ich bei Bit setzen von solchen Registern lieber gleich 0b00001000, da sieht man auch ohne Rechnerei was gerade gesetzt wird, auch wenn es etwas rustikal ist und mehr Schreiberei.
Nee das geht so bei mir net. Das ist die Fehlermeldung. error: Operand 2 out of range: 0x8
Robert M. wrote: > Nee das geht so bei mir net. Das ist die Fehlermeldung. > error: Operand 2 out of range: 0x8 Dann unterstützt dein Compiler keine Zahlen in Binärschreibweise.
Die Gemeinheit ist, daß SBI (Set Bit in I/O Register) die Nummer des Bit haben will, während SBR (Set Bit in Register) einfach nur ein anderer Name für ORI ist und daher nicht die Nummer, sondern die Wertigkeit braucht.
Hallo, um noch genauer zu sein, er will eine Bitmaske, genau wie cbr. Das hat den Vorteil, daß man gleichzeitig mehrere Bits setzen oder mit cbr löschen kann. sbr r20,0b00010001 setzt Bit 0 und 4 (eben ein or) cbr r20,0b00010001 löscht Bit 0 und 4 (ist ein and mit dem Einer-Complement) Bei sbi und cbi geht das so leider nicht, da ist es die Bitnumemr und somit immer nur 1 Bit änderbar. Auch bei sbrs und sbrc beachten, dort ist es auch die Bitnummer, genauso wie bei sbis und cbis für die I/O... Gruß aus Berlin Michael
Empfehlung: nicht die Menmonics SBR/CBR verwenden, sondern die identischen Befehle ANDI/ORI. Erspart Missverständnisse hinsichtlich Bitnummmer und Bitmaske.
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.