Forum: Projekte & Code Neuer Assembler für ATMEL AVR


von Gerhard Schmidt (Gast)


Lesenswert?

Kostenlos zum Download: ein neuer Assembler für ATMEL-AT90S-, ATtiny- 
und ATmega-Prozessoren. Für DOS, Win32 und Linux(i386) kompilierte 
Versionen. Deutsche und englische Versionen. Mit Quelltext in Pascal! 
Das ist eine Betaversion und ich würde mich über Testberichte freuen. 
Hier geht's zum Download:

http://www.avr-asm-tutorial.net/gavrasm/index_de.html

MfG
Gerd

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hallo,

schön, endlich mal wieder ein avrasm-kompatibler Assembler für Linux! 
Hab den Assembler gleich mal über mein aktuelles Projekt (800 Zeilen) 
laufen lassen und leider einen Fehler bekommen den es mit tavrasm und 
avrasm nicht gibt:

| Zeile: 287
| Fehler 066: Ungueltige Direktive innerhalb des E-Segments oder Makros!
|  Datei: da-test.asm, Zeile: 287
|  Quellzeile: .eseg

Der Grund ist anscheinend, dass man .eseg nicht verwenden darf wenn man 
sich an der Stelle schon im EEPROM-Segment befindet. Ich finde es nicht 
sinnvoll das als Fehler anzuzeigen,

Dann hat sich dein Assembler noch beschwert dass eine meiner Konstanten 
mit einem "_" beginnt. Der Atmel-Assembler und tavrasm erlauben das.

Und noch was: ich finde der Assembler ist etwas geschwätzig ;-)
Kurze Meldungen im Stil von tavrasm gefallen mir besser, Beispiel:
da-test.asm:529: Error in macro : Unknown opcode

Gruß
Andreas

von Gerhard Schmidt (Gast)


Lesenswert?

Lieber Andreas,

danke für den Test und die Rückmeldungen. Werde ich bei der nächsten 
Revision beherzigen.

Daran, dass jemand im ESEG noch ein ESEG bringt, bin ich gar nicht 
gekommen. Ist einfach bei der Abfrage der Zulässigkeit der Direktive 
durchgerutscht. Ist natürlich kein echter Fehler. Vielleicht mache ich 
daraus eine Warnung.

An den Unterstrich als erstes Zeichen eines Symbols habe ich auch nicht 
gedacht. Ist natürlich auch kein Fehler.

Zum Thema Geschwätzigkeit: Ich persönlich kann mich erinnern, dass mir 
zu Beginn meiner Bemühungen viele Fehlermeldungen etwas kryptisch 
vorkamen. Vielleicht bringe ich mit der nächsten Version eine 
Short-(tavrasm-Format), Long-(derzeitige Länge) und Superlong-Version 
(Beginner-Format) und lasse dem User die Qu|W+a+[h]l.

Bei anderen Assemblern hat mich vor allem gestört, dass ich so wenig 
Info kriege. Insbesondere gibt es nur mit ziemlicher Verrenkung die 
Möglichkeit, die tatsächliche Größe einer Zahl herauszufinden, wenn ein 
Overflow aus dem Zulässigkeitsbereich erfolgt. Man ist dann auf .DW und 
einen Blick ins Listing angewiesen. (Bis hin zum völligen Fehlen jeder 
Kontrolle des Zulässigkeitsbereiches, wie bei den älteren 
ATMEL-Assemblern: der hat nicht mal gemerkt, dass seine internen 
32-Bit-Integer-Zahlen übergelaufen sind). Ich habe daher in den 
Fehlermeldungen immer versucht, den eigentlichen Verursacher in Klammern 
mit auszugeben, also die tatsächliche Größe oder das unbekannte Symbol 
etc. Ich finde, das sollte bei der Kürzung nicht unter den Tisch fallen.

Bin gespannt, was andere dazu meinen.

MfG
Gerd

von ahmad daqamseh (Gast)


Lesenswert?

hallo sir
 i would like to send me the program of the atmel 89c51 assembler

because we need it .
thanks

von Gerhard Schmidt (Gast)


Lesenswert?

Sorry Ahmad, the assembler was only written and designed for AT90S-,
ATtiny- and ATmega-types! I don't think it works for 89c51, even
though I'm not very familiar with these types.

Regards,
Gerhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.