Hy, da meine erste Frage so schnell und echt klasse beantwortet wurde, das sie mir wirklich weitergeholfen hat, Hoffe ich das man mir nochmal auf die Sprünge helfen kann :) Bin immernoch dabei mich mit Hilfe eines Lehrbuchs in Assembler einzuarbeiten, da ist jetzt im quelltext ein hochkanter strich "|" (Siehe bild) aber leider nirgens ne erklärung was da mit den beiden Variablen passiert, :-( habe das ganze mal auf den ATmege gebrant und er macht auch das was er soll. mfg Theo
Das ist ein bitweises Oder und wird vom Assembler aufgelöst. Du kannst ja auch schreiben ldi r16, 2 + 3 und der Assembler rechnet 2+3 aus und erzeugt Code für ldi r16, 5 Und hier ist es eben keine Addition, sondern ein bitweises Oder mit dem die beiden Konstanten zusammengeführt werden um zu bestimmen mit welchem Wert r16 geladen werden soll. TWINT ist eine Konstante mit einem 1 Bit an einer Stelle TWEN ist eine Konstante mit einem 1 Bit an einer anderen Stelle die Veroderung ergibt dann ein Byte, in dem genau diese beiden 1 Bits gesetzt sind. Und das nächste mal bitte kein Bild vom Code, sondern den Code in Textform. Dann kann man sich nämlich in der Antwort aus dem Original auch die Teile rauskopieren, die man zur Erklärung benötigt und muss nicht den halben Code neu tippen.
Hallo Das dürfte eine logisches "oder " zweier Konstanten sein. Eine Bitweise Verknüpfung. Das passiert wohl schon im Assembler (die CPU sieht nur das Resultat). da1l6
Hi, 1. bitte Codeschnipsel anstatt als Bild direkt in die Nachricht mit den Code-TAGS [ c ] und [ /c ] einfügen. 2. Das "|" steht für eine bitweise ODER-Verknüpfung der beiden Werte, diese wird zur übersetzungszeit vom Assembler vorgenommen und die daraus resultierende Konstante dann in den Code geschrieben. Aber das hättest Du mit Google auch leicht finden können, dritter Treffer bei der Suche nach "avr assembler operands": http://support.atmel.com/knowledgebase/avrstudiohelp/mergedprojects/avrasm/Html/expressions.html Solltest Du den gcc-as verwenden, musst Du mal einen Blick in dessen Manual werfen (aber die Basisoperatoren sind die gleichen). Grüße Markus
Hi > da ist jetzt im quelltext ein hochkanter strich "|" Eine OR-Verknüpfung. Solltest du in der Hilfe zu deinem Assembler finden. Im AVR Studio unter AVR Assembler->User's Guide->Expressions. MfG Spess
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.