GNU Assembler und Daten im SRAM

Gast #1556578
Hallo!

Ich versuche gerade folgendes (AVR-Studio Syntax) mit dem GNU Assembler 
(avr-gcc) zu machen:

.DSEG
MEIN_KLEINES_FELD:   .BYTE 32

Später im Code möchte ich dann mit

LDI XH, HIGH(MEIN_KLEINES_FELD)
LDI XL, LOW(MEIN_KLEINES_FELD)

darauf zurgreifen. Mittlerweile habe ich rausgefunden, dass man beim GNU 
Assembler (GAS) statt HIGH und LOW hi8 bzw. lo8 verwenden muss. Aber 
beim Rest komme ich leider nicht weiter. Wie gebe ich ihm das unter GNU 
Assembler an? .DSEG kennt er nämlich nicht :-(

Danke im Vorraus!
Gast
Super Danke!

Ich hab noch ne kleine Verständnisfrage: Sowohl .section .bss als auch 
.section .data liegen dann im SRAM und .section .text liegt dann im 
Flash (wäre also sowas wie .CSEG im AVR Studio).

Ist das so richtig?
Moderator Persönliche Seite
Ja, das ist so.  Wenn du den C-Startup-Code benutzt, dann würde
dieser .bss beim Start ausnullen, während er für .data hinter .text
die Initialisierungsdaten erwartet, die er aus dem Flash dahin
kopiert.

Wenn du das alles rein im Assembler machst, sind .bss und .data
für die praktisch dasselbe.  Du tust natürlich gut daran, wenn du
dich an die Konvention hälst, denn dann kann das auch mal jemand
anders nachvollziehen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.