Pfad: Home => avr DE => How-To => Assemblieren Windows Logo

Assemblieren von Assembler-Quellcode unter Windows

Ein Demo-Assembler Quellcode Im Folgenden wird angenommen, es gäbe einen Assembler-Quellcode namens "mein_asm_code.asm" in einem Ordner. Wer den Quellcode selbst erzeugen will, der Noch eine Warnung: Assembler-Quellcode-Dateien niemals mit Office-Schreibprogrammen öffnen und speichern. Das macht sie kaputt und für den Assembler unlesbar.

An den Seitenanfang, zur Leitseite

Schritt 1: Den gavrasm-Assembler für Windows holen

gavrasm downloaden Zum Assemblieren braucht man das Assemblerprogramm. Ich empfehle meinen eigenen, gavrasm. Er hat den Vorteil, dass er die Definitionsdateien von ATMEL für alle AVR-Typen verinnerlicht hat, wir brauchen uns daher nicht mit diesen herumschlagen (und das 850 MB große Studio herunterzuladen und zu installieren).

Um gavrasm herunterzuladen, navigiere man mit seinem Lieblingsbrowser an die nebenstehende Adresse und lade sich mit einem Rechtsklick auf den Win64-Link sowie "Ziel speichern unter" die Datei herunter, bevorzugt dahin, wo auch schon die Quellcode-Datei herumliegt.

gavrasm gibt es fertig kompiliert nur für die 64-Bit-Versionen von Windows. Wer 32-Bits oder noch ein anderes Betriebssystem hat, braucht den Pascal-Quellcode von gavrasm (von weiter unten auf der Webseite) und muss sich den mit Free Pascal (FPC) selber kompilieren, z.B. mit
c:\FPC\2.6.4\win64\bin\i386-win32\ppcrossx64 -Xs -B gavrasm

auf der Kommandozeile (Pfade und Kompilierdatei an die eigene FPC-Version anpassen).

gavrasm gezippt gavrasm ist gezippt. Um es auszupacken, rechtsklicke man auf die Datei und wähle "Alles extrahieren". Das erzeugt einen neuen Ordner, in dem die ausgepackten Dateien herumliegen.

gavrasm ausgepackt Die drei Dateien gavrasm.exe, LiesMich.Txt und instr.asm verschiebe man aus diesem Ordner in den Ordner darüber, den leeren Ordner und die gezippte Datei kann man dann löschen.

An den Seitenanfang, zur Leitseite

Schritt 2: Mit gavrasm vertraut machen

LiesMich.Txt In der LiesMich.Txt-Datei steht alles Wissenswerte über den Assembler gavrasm. Gleich zu Anfang stehen die Regeln, wie man den aufruft und was er mit dem "-"Schaltern alles anders macht als normal. Für den Anfänger ist "-seb" die beste Wahl.

gavrasm AVR-Typen Das hier sind alle AVR-Typen, die gavrasm kennt und für die er die Definitionen verinnerlicht hat. Versuche nicht, irgendwelche anderen Prozessorfamilien als 8-Bit-AVR damit zu assemblieren, das geht schief. Die Suffixe A, P, etc. sind meistens überflüssiges Beiwerk, weil sich die Definitionen meistens gar nicht unterscheiden. Aber gavrasm kennt sie alle ganz genau.

An den Seitenanfang, zur Leitseite

Schritt 3: Eine Batch-Datei zum Assemblieren erzeugen

Batch-Datei Die Ritter der Kommandozeile sind jetzt schon bedient: sie navigieren mit "cd" zu dem Ordner und tippen "gavrasm -seb mein_asm_code" ein und sind fertig.

Wer tippfauler ist, erzeugt sich eine Batch-Datei. Dazu ein Rechtsklick in den Ordner, "Neu" und "Textdatei". Wir nennen das Ding "assemblieren.bat" und bestätigen den nervigen Dialog. Mit einem Rechtsklick auf die neu erzeugte Datei und "Bearbeiten" sollte sich wieder der Editor Notepad öffnen und wir tippen Nebenstehendes darin ein. Nicht vergessen zu speichern, bevor wir die Batch-Datei wieder zumachen.

An den Seitenanfang, zur Leitseite

Schritt 4: Assemblieren

Assemblieren Durch Doppelklicken auf die Batch-Datei startet nun der Assembler und verrichtet seine Arbeit in einem schwarzen Fenster. Er geruht uns in dem Fenster alles Wissenwerte mitzuteilen, z.B. dass er zwei Durchläufe absolviert hat. Eine Warnung hat er ausgegeben, nämlich dass er die verinnerlichten Symboldefinitionen verwendet hat statt die Datei "tn13def.inc" zu lesen.

Immerhin hat er das alles ohne Fehler gefressen, und das wollten wir sehen.

Taucht hier die Fehlermeldung "Include-Datei nicht gefunden!" auf, dann gehört zu der asm-Datei eine (oder mehrere) Include-Dateien. Die müssen wir natürlich in den Ordner dazupacken, damit er glücklich wird.

Fehler werden bei gavrasm in einer separaten Datei .err aufgelistet, mit der man übersichtlicher durch den Quellcode navigieren kann als mit dem unübersichtlichen Listing.

Assembler-Listing In der neu erzeugten Datei "mein_asm_code.lst" gibt der Assembler alles Wissenswerte über den Assemblierprozess bekannt. Darunter sind die Adressen, die erzeugten Hexadezimalcodes des Programmes und vieles andere mehr.

Da wir beim Aufruf von gavrasm -s mit angegeben haben, erzeugt er am Ende eine Symboltabelle. Sie zeigt alle Symbole an, von T wie Typ über L wie Label (Adresse im Programm) bis zu R wie Register (alle verwendeten Register). Hätten wir auch Konstanten verwendet, käme als Symboltyp noch C hinzu. Auch Makros, die im Quellcode verwendet werden, sind aufgelistet.

So eine Symboltabelle kriegt man nur mit gavrasm, das macht kein anderer Assembler. Der ATMEL-Assembler gibt stattdessen die verwendeten Instruktionen bekannt, verrät aber nicht, wozu man den Unsinn außer für die häre Statistik eigentlich gebrauchen kann.

Hexdatei Ist der Assembliervorgang ohne Fehler absolviert, dann erzeugt gavrasm eine weitere Datei mit Suffix .hex. Diese enthält den erzeugten Hexcode im Intel-Hex-Format, der direkt von der Brennersoftware verstanden wird und in den Flashspeicher des AVRs gelotst werden kann.

Falls im Quellcode auch Inhalte für das EEPROM definiert sind, sind diese in der .eep-Datei ebenfalls in Intel-Hex-Format abgelegt, damit sie von der Brennersoftware verstanden werden.

An den Seitenanfang, zur Leitseite

©2014-2017 by http://www.avr-asm-tutorial.net