Im WWW Suchen

Benutzerdefinierte Suche

Assembler

Ich weiss, gerade unter Hobbyelektronikern es gibt nicht allzu viele ASM-Programmierer. Viele Anfänger möchten möglichst schnell ans Ziel kommen und dabei mit geringstem Lern und Programmieraufwand die grössten Projekte durchziehen. Wenn das erste µC Programm print "Hello World" oder ähnlich lautet und nach dem flashen dann wie durch Magie dieses "Hello World" auf dem LCD erscheint, mag das den einen oder anderen zufriedenstellen. Dem Assemblerprogrammierer nicht. Er braucht vielleicht 40-50 Befehle für das selbe Programm. Noch länger, ist die Zeit die er für das lesen und studieren des LCD Datenblatts braucht. Erscheint dann das "Hello World" auf seinem Display, hat das für ihn nichts mit Magie zu tun. Es ist für ihn Logisch. Es zeigt ihm, das er seine Hausaufgaben gemacht und verstanden hat. Genau das ist seine Belohnung und das hat auch  nichts mit Masochismus zu tun, wie in den Foren oft behauptet wird. Seltsamerweise braucht er nur ein Bruchteil des Flashspeichers seines Gegenübers und kommt auch sonst mit einem Tiny2313 zurecht wo sein Freund einen ATMega mit 32K und einem Shield  mit der Version XYZ benötigt. Der ASM Programmierer nutzt keine Compilerflags um seinen Code schneller, kürzer oder besser zum machen. Er weiß selbst, wann es wichtig ist Speicher oder Laufzeit zu sparen und weiß dies in seinem Code umzusetzen, oder hat den Ehrgeiz sich das zu erarbeiten. Auch erfindet er das Rad nicht neu. Aber ab und zu bastelt er ein anderes Rad, oder er passt ein vorhandenes Rad an. Sonst müsste er evtl. einen Autoreifen an eine Schubkarre Montieren und das will er nicht. Er will bei seiner Schubkarre genau wie in seinem Code, Geschwindigkeit und wenig Gewicht. Jedoch, jeder wie er will. Mit dem bisher gesagten mochte ich niemanden zu nahe treten oder Diskussionen entfachen, die am Ende doch zu nichts führen. Die Foren sind voll davon. Das ganze ist nur meine persönliche Meinung und die Antwort auf den Vergleich des Assemblerprogrammierers mit einem Steinzeitmenschen.
Jedoch, es stimmt. Assembler ist zeitaufwendig. Da ich aber mein Geld nicht mit Programmieren verdienen muss, habe ich diese Zeit. Man kann sogar sagen, wenn das recherchieren der Bauteile, das zeichnen des Schaltplans fertig ist und der Probeaufbau steht, genieße ich diese Zeit. Mir macht die Programmierung auf unterster Ebene auf alle Fälle einen riesigen Spass.

Zitat aus einem Forum: ...wer Assembler kann, ist auch ein klein wenig verliebt...

Für alle die ähnlich denken wie ich, möchte ich hier Routinen vorstellen, die sich bei mir bewährt haben. Immer wenn ich Zeit und Lust habe, werde ich die ASM-Ecke um weitere Beiträge erweitern. So soll mit der Zeit, ein kleines Nachschlagewerk enstehen welches dem einen oder anderen von Nutzen sein könnte. Das ist auch eine gute Wiederholung für mich.
Die Artikel sollten nicht als Bibliothek verstanden werden, welche man blind und ohne sie zu Verstehen  in eigene Projekte einbinden kann, sondern eher als Denkanstoß oder als Alternative zu anderen Lösungen.

Alle Beispiele  lassen sich mit dem AVR Studio 4.19 assemblieren.

Natürlich kann ich als Einzelperson, keinen kompletten Assemblerkurs liefern. Anfänger empfehle ich  http://www.mikrocontroller.net/articles/AVR-Tutorial und avr-asm-tutorial.net durchzuarbeiten.

Viel Spass beim Coden,
Jürgen

Tasten

Taster sind das wohl einfachste Eingabeinstrument, welche an einen µC angeschlossen werden können. Wenn ihr wissen wollt wie ich in meinen µC-Projekten Taster entprelle und mit Sonderfunktionen belege, dann lest am besten mal in meinem ersten Beitrag im Assemblerteil indem es um...

... geht

Zu den Tasten

Rechnen in Assembler

Hier stelle ich meine Grundroutinen zum Multiplizieren und Dividieren vor.

Zum Mathe Teil gehts hier lang ...