Grundlagen der Assemblerprogrammierung


Zusammenfassung, 2014

13 Seiten


Leseprobe


Assembler (16 Bit) unter Windows

Allgemeine Zusammenfassung der wichtigsten Grundlagen der Assemblerprogrammierung

Abschnitt 1: Die Arbeitsumgebung

Die Arbeitsumgebung ist die DOS-Box, die im Gegensatz zum cmd-Programm von Windows auch im Vollbild-Modus (Tastenkombination: ALT + Enter) betrieben werden kann.

Editor der Dateien ist das Notepad++. In ihm werden die Dateien geschrieben und als .asm-Dateien abgespeichert.

Umgang mit der DOS-Box:

Zuerst wird der Ordner hinzugefügt (englisch: hinzufügen ➔ mount), indemmount c Ordnerpfad eingegeben wird.

Der Ordnerpfad meint dabei den Pfad, in dem später die Programmdateien gespeichert werden.

Umwandlung in der .asm in .exe (macht die Dateien ausführbar):

TASM Dateiname – wandelt die .asm-Datei in eine .obj-Datei um („Compiler“)

TLINK Dateiname – wandelt die .obj-Datei in eine ausführbare .exe-Datei um („Linker“)

Umwandlung mit Hilfe einer „BAT-Datei“:

Mit dem Notepad++ erstellt man eine leere Datei mit dem Namen asm.bat (.bat als Dateiformat) und fügt dort folgenden Quelltext ein:

@echo off

if exist %1.obj del %1.obj

if exist %1.exe del %1.exe

@echo on

tasm %1.asm

tlink %1.obj

Damit erspart man sich das Kompilieren und Linken. Um eine Datei zu Kompilieren und zu Linken gibt man nach dem Mounten (siehe oben) ein: asm Dateiname

Um die Datei zu starten gibt man danach einfach nur noch den Dateinamen ein.

! Hinweis: Kursiv gedruckte Wörter müssen durch bestimmte Werte oder Namen oder ähnliches ersetzt werden, z.B. der oben genannte Dateiname durch den selbstgewählten Namen der Datei, die später ausgeführt werden soll.

! Hinweis: Dunkelblau unterlegte Abschnitte sind Programmauszüge und können direkt ins Programmkopiert werden.

! Hinweis: Die Befehle der einzelnen Programmauszüge sind im Abschnitt 10 erklärt.

Abschnitt 2: Prozessarchitektur und Registerarten

Die sogenannten „Register“ werden bei Computern zum festen Speichern von Bits verwendet, mit denen der Prozessor arbeitet. Windows verwendet 64-Bit (alle Spalten), in dieser Anleitung werden nur die Register mit 16-Bit verwendet (die 2 rechten Spalten).

Registerarten:

Es gibt verschiedene Arten von Registern. Das eine sind die Grundregister. Diese sind:

AX (Akkumulator), BX, CX, DX (diese können auch kleingeschrieben werden)

Außerdem gibt es noch andere Register, wie:

DS (Daten-Segmentregister), ES (Extra-Segmentregister), SI (Source-Index), DI (Destination-Index), SP (Stack-Pointer), BP (Base-Pointer)

Abschnitt 3: Bedingte und unbedingte Sprünge

Flagregister:

Die Flagregister dienen dazu, eine Markierung zu setzen, wenn ein bestimmter Fall eintritt. Es gibt vier verschiedene Arten:

Abbildung in dieser Leseprobe nicht enthalten

Wenn ein Vergleich durchgeführt wird, müssen vorher zwei Register verglichen werden. Das wird mit der „Compare“-Befehl realisiert: cmp erstes_Register, zweites_Register

Damit die Flagregister verwendet werden können, müssen Sie als Sprungmarke gesetzt werden(ein j).

jz weiter ➔ bedeutet: Wenn das angegebene Register =0 ist, springe zu „weiter“! weiter: ➔ diese ist die Stelle, an der das Programm bei der gesetzten Flag weiterläuft.

Um eine Flag zu negieren, gibt man statt jz ➔ jnz ein.

Erklärung: jnz ➔ „jump not zero“ ➔ „Springe, wenn nicht gleich null“

Unbedingte Sprünge (immer):

jump Ziel (sogenannte Sprungmarke)

Ziel:

Beispiel:

jmp start;----

Unterprogramme ----;-----

MAIN -------------

start: movax,@data

Bedingte Sprünge (siehe auch: Flagregister):

Beispiel:

cmp ax, bx

jng weiter1

;Aktionen für AX>BX

;beliebig viele Anweisungen

weiter1: …

Abschnitt 4: Einseitige und Zweiseitige Auswahl

Einseitige Auswahl (if):

Abbildung in dieser Leseprobe nicht enthalten

Zweiseitige Auswahl (if -else):

Abbildung in dieser Leseprobe nicht enthalten

Abschnitt 5: Wiederholungen

Der loop-Befehl:

Der loop-Befehl ist ein Sprungbefehl (ableitbar: Looping). Er arbeitet grundsätzlich mit dem CX-Register. Dabei zieht er von dem CX-Register 1 ab und arbeitet für CX > 0. ! Hinweis: Das CX-Register darf dabei nicht überschrieben werden!

Solange-Schleife (while):

Abbildung in dieser Leseprobe nicht enthalten

Zählschleife (for):

Abbildung in dieser Leseprobe nicht enthalten

Abschnitt 6: Makros

Makros sind Codeteile bzw. Codestücke, die aus mehreren Anweisungen bestehen können.Makros werden vor dem eigentlichen Programm definiert.Sie können vom Programm aus aufgerufen werden, wobei, im Gegensatz zu einer Prozedur, das Makro in den Quellcode kopiert wird.Außerdem kann man Makros auch Parameter übergeben.

Makros beginnen mit:

Makroname MACRO;Anweisungen

ENDM

[...]

Ende der Leseprobe aus 13 Seiten

Details

Titel
Grundlagen der Assemblerprogrammierung
Autor
Jahr
2014
Seiten
13
Katalognummer
V341303
ISBN (eBook)
9783668308978
ISBN (Buch)
9783668308985
Dateigröße
470 KB
Sprache
Deutsch
Schlagworte
grundlagen, assemblerprogrammierung
Arbeit zitieren
Philipp Hänicke (Autor:in), 2014, Grundlagen der Assemblerprogrammierung, München, GRIN Verlag, https://www.grin.com/document/341303

Kommentare

  • Noch keine Kommentare.
Blick ins Buch
Titel: Grundlagen der Assemblerprogrammierung



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden