mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Assembler Anleitung Vorschläge


Autor: Martin Z. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte mir jemand irgenwelche gute online Anleitungen zum Assemler
programmieren vorschlagen? Ich suche nicht nach Anleitungen um als
Anfänger Assembler zu lernen sondern eher wie man 'gut' Assembler
programmiert, also so Tips und Tricks um effizienten und übersichlichen
Code zu schreiben. Also auch zum Beispiel wie Code aus C implementiert
wird.
Konkret will ich den AT89C5131 von Atmel programmieren, also wären
Anleitungen mit dem 8051 Befehlssatz am besten, aber wenn jemand sehr
gute Anleitungen zu einem anderen Befehlssatz mitteilen könnte wäre das
auch super. Vielen Dank.
Martin

Autor: Andi K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier solltest Du fündig werden:
http://www.8052.com

Und hier der Befahlssatz, sogar mit seutscher Erklärung:
http://www.mikrocontroller.net/attachment.php/1955...

Das mit der Effizienz ist so eine Sache.
Das hängt von jedem selber ab und wird mehr durch Erfahrungswerte und
der Zeit bestimmt.
Man sollte halt möglichst irgendwelche Warteschleifen vermeiden, sich
nach und nach Subs oder Macros für spezielle Dinge zusammenschreiben
die man später wieder verwenden kann.
Die Effizienz hängt auch oft vom speziellen Fall ab und kann Dir im
Allgemeinen niemand beibringen.

MfG
Andi

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Martin,

1. Den Befehlssatz gibt es auf jeder Hersteller-Seite meist als PDF zum
Download. Er ist für jeden 8051er identisch.

2. Der Ansatz des guten Programmierens hängt von deiner Erfahrung ab.
Klar, das gesamte Programm in eine Routine zu schreiben ist wie bei C
auch ein schlechter Ansatz. Also für jede Aufgabe eine eigene Routine.
Parameter lassen sich beim 8051er sehr gut über die Register R0-R7 an
andere Routinen weiterleiten.

Und ganz wichtig ist vor allem, wirklich jeden Assembler-Befehl
eindeutig begriffen zu haben, damit du effektiven Code schreibst.
Mit steigender Erfahrung in Assembler wirst du dann auch lernen, wie
man  durch das Anwenden der richtigen Befehle "Tricksen" kann.

3. Und das Aufrufen von C-Routinen aus Assembler und umgekehrt hängt
von deinem Compiler/Linker/Assembler ab.

Wenn ich dir dazu einen Tip geben darf, nimm den KEIL C51, der kann in
der Demo 2kB. Dazu gibt es zwei Bücher von Michael Baldischweiler
(www.c51.de), kosten aber ca. 50 Teuro das Stück. In diesen Büchern
steht, wie man das macht mit den ASM <-> C Aufrufen.

Zusätzlich kannst du im Web mal nach dem C51-Primer suchen, das ist ein
PDF (leider in angelsächsisch), welches auch noch mal gute Tipps/Tricks
zum C51 hat.

Ich will dir nicht verschweigen, dass der Keil C51 in der Vollversion
bis zu 2600 Euro kostet.

Alternativ gibt es noch den C51-Compiler der Firma Wickenhäuser, der
hat in der Demo 8kB(!) und kostet etwa 110 Euro in der Vollversion, ist
aber nicht ganz so komfortabel wie der Keil C51. Wickenhäuser hat auch
mal behauptet, dass sie weitaus kleineren Code erzeugen als Keil, dazu
kann ich aber keine Aussage machen.

Hoffe ich konnte dir weiterhelfen.

Gruß Ralf

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.