Binärzahlen im Flash ablegen

Gast #3042506
Lesenswert?
• ▲
▼
Hallo, ich will einige Binärzahlen im Flash ablegen. Mein Code sieht so 
aus:
1
.db
2

3
; 00
4
0b01111110,
5
0b01111110,
6
; 01
7
0b01111110,
8
0b00110000,
9
; 02
10
0b01111110,
11
0b01101101,
12
; 03
13
0b01111110,
14
0b01111001,
15
; 04
16
0b01111110,
17
0b00110011,
18
; 05
19
0b01111110,
20
0b01011011,
21
; 06
22
0b01111110,
23
0b01011111,
24
; 07
25
0b01111110,
26
0b01110000,
27
; 08
28
0b01111110,
29
0b01111111,
30
; 09
31
0b01111110,
32
0b01111011,
33
; 10
34
0b00110000,
35
0b01111110

das geht aber nicht da erwartet wird, dass alle Zahlen schön in einer 
Reihe hinter dem .db stehen (keine Zeilenumrüche, da gibts eine 
Fehlermeldung)

Gibts eine Möglichkeit wie ich das trotzdem in dieser für mich 
übersichtlicheren Form im AVR Studio darstellen kann ohne 
Fehlermeldungen zu produzieren?
Danke.
Gast #3042585
Lesenswert?
• ▲
▼
Hi

>".db" an jedem Zeilenanfang

Dann belegt aber zum Beispiel diese Zeile
1
  .db 0b01111110

zwei Byte, da der Assembler bei einer ungeradzahligen Anzahl von Bytes 
in einer Zeile eine Null ergänzt.

Ich würde es so
1
; 00
2
.db 0b01111110,0b01111110
3
; 01
4
.db 0b01111110,0b00110000,
5
; 02
6
.db 0b01111110,0b01101101
7
....
machen.

MfG Spess
#3042633
Lesenswert?
• ▲
▼
Karol Babioch schrieb:
> Was für Werkzeuge (Assembler) setzt du denn ein? I.d.R. maskiert ein
> Backslash am Ende der Zeile den Zeilenumbruch, probiere es also Mal mit:
> .db
>
> ; 00
> 0b01111110, \
> 0b01111110, \
> ; ...
> 0b01111110

Was soll das bringen, 7 Zeilen, aber nur 2 '\' ?
Jede Zeile muß verlängert werden, außer die letzte.

Und Zeilenkommentare mittendrin kann ja auch nicht gehen. Sie müssen in 
C-Notation sein /* ... */
1
.db \
2
/* bla blub */ \
3
0b111 \
4
0b101 \
5
/* usw. */ \
Gast #3042649
Lesenswert?
• ▲
▼
Es ist abhängig wie er den Code übnersetzt:

- AVR Assembler -> AVR Assembler Syntax (z.B. ";" für Kommentare)

oder

- GCC AS -> C Preprocessor etc.

Da ";" für Kommentare genutzt werden, nehme ich an es wird der 
AVR-Assembler verwendet. Der "\" sollte aber funktionieren um eine 
logische Zeile auf mehrere Zeilen zu verteilen.

Die Syntax ist hier beschrieben:

http://www.atmel.no/webdoc/avrassembler/avrassembler.wb_Syntax.html

Dort steht auch das .db immer eine gerade Anzahl von Argumenten verlangt 
und ggf. auffüllt. Das muss auch so sein, da der Programmspeicher ja 
wortweise addressiert wird.

Grüße
Markus
Gast #3043424
Lesenswert?
• ▲
▼
Nochmals vielen Dank an alle!
Ich werde mich an den Vorschlag von Spess halten.
Noch kurz zur Info was es eigentlich sein soll: Ein Lookup-Tabelle für 
die Siebensegmentanzeige einer Uhr. Also 00 bis 59. Geht so wohl am 
schnellsten :)

Antwort schreiben

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.

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.