PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bit im SRAM setzen



1udo1
22.10.2007, 02:03
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

JanB
22.10.2007, 06:50
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

1udo1
22.10.2007, 10:56
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/

JanB
22.10.2007, 19:27
Hallo Udo,

Kann ich den einzelnen Bits im SRAM auch Symbole zuteilen...

EDIT: Beitrag gelöscht. Ging an deiner Frage vorbei.

Gruß Jan

T.J.
22.10.2007, 20:42
jo, mit .def blubb = r20 sollte das gehen