Archiv verlassen und diese Seite im Standarddesign anzeigen : Bit im SRAM setzen
Hallo,
im avr-assembler möchte ich im SRAM ein Flag setzen.
Im Keil assembler (8051)kann man Folgendes definieren;
BSEG AT 00H; 20H im bitadressierbaren Bereich
MERKER: DBIT 1
Das gleiche möchte ich in avr machen.
Kann mit sbr folgendes Bit setzen
sbr r20,$01
Es wird im Simulator angezeigt
Aber der Befehl sbrs (skip if bit is set) wird nicht ausgeführt. Obwohl das Bit gesetzt ist, wird der nachfolgende Befehl nicht übersprungen.
Hat jemand einen Tipp?
Udo
Hi Udo,
Achtung hier lauert eine gemeine Falle im AVR-Assembler Befehlssatz.
Der Befehl SBR Rd,K (und auch CBR, SBI, CBI) hat eine andere Syntax
als der Befehl SBRS Rr,b (SBRC, SBIS, SBIC).
Der Befehl "SBR Rd,K" dient zum Setzen eines oder mehrerer! Bits
in einem Register.
Der Parameter K ist eine Bitmaske in der eines oder mehrere Bits gesetzt sein können.
Der Wertebereich für K liegt von 0 bis 255.
"SBR Rd,K" ist nur ein anderer Ausdruck für "ORI Rd,K".
Der Parameter b in dem Befehl "SBRS r,b" ist dagegen eine Bitnummer.
b kann nur die Werte 0 bis 7 annehmen. ( Bit0 bis Bit7 )
Wenn du also mit "SBR 20,1" Bit0 in Reg20 setzt,
dann lautet der entsprechende Skip-Befehl für dieses Bit "SBRS 20,0".
Einmal 1 als Bitmaske für Bit0 und einmal 0 als Bitnummer für Bit0
Ist aber auch im Datenblatt genau beschrieben.
Puh... ich hoffe das ist verständlich und trifft dein Problem.
Gruß Jan
Hallo Jan,
vielen, vielen Dank!!! Du hast mir weitere Suche bei google und Co. erspart.
Es klappt. https://www.roboternetz.de/phpBB2/images/smiles/eusa_dance.gif
Dancing
Noch eine Frage:
Kann ich den einzelnen Bits im SRAM auch Symbole zuteilen, ähnlich wie im Keilassembler?
Also
.EQU MERKER r20,1
Bevor ich lange an Syntaxvarianten probiere, stelle ich lieber gleich die frage.
Gruß
Udo \:D/
Hallo Udo,
Kann ich den einzelnen Bits im SRAM auch Symbole zuteilen...
EDIT: Beitrag gelöscht. Ging an deiner Frage vorbei.
Gruß Jan
jo, mit .def blubb = r20 sollte das gehen
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.