www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Register und Variablen nutzen


Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mal ne Frage zu den Registern und zwar benötige ich um das
Prog leicht verständlich zu machen mehr Variablen zu definieren.
Normalerweise geht das ja so:
.def Zahl1= r16

Aber mir reichen die Register nicht aus da ich einige durch die Pointer
draufgehen usw. Gibt es ne Möglichkeit einen Variablennamen einer
bestimmten 8bit Speicherstelle(SRAM) zuzuordnen?

Oder lassen sich die Register im Programm mehrmals umdefinieren, was
aber die schlechtere Lösung für mich wäre.

Also vielen Dank im Vorraus

Autor: Christof Krüger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar kannst du SRAM-Inhalt mit einem Namen versehen, schau dir im
Assembler die Direktiven .dseg und .byte an. Natürlich musst du dann
auch die Werte erst aus dem SRAM holen, ehe du damit arbeiten kannst.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du kannst Registern mehrere Variablennamen zuweisen.Außerdem kannst Du
einer Variablen im SRAM einen Namen (=Label) für Ihre Adresse zuweisen.
Darauf zugreifen kannst Du jedoch wiederum nur über die Pointer.

Beispiel aus der Hilfe:
.DSEG
var1:   .Byte 1      ; ein einziges Byte reservieren für var1

.CSEG
ldi r30,low(var1)
ldi r31,high(var1)
ld r1,Z              ; lesender Zugriff

Gruß

Autor: Thomas Oly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe jetzt auch was gefunden, womit man direkt aufs sram zugreifen kann
aber leoder nur unter nutzung einer direkten speicheradresse.

lds r2,$FF00 ; Load r2 with the contents of data space location $FF00
add r2,r1        ; add r1 to r2
sts $FF00,r2 ; Write back

Anscheinend geht es damit, dann kann ich doch die Speicherstelle $60
mit ErgebnissAD ansprechen.
.equ  ErgebnissAD  =$60

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.