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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren