Assembler

„Eine Assemblersprache (oft abgekürzt als ASM bzw. asm) ist eine spezielle Programmiersprache, welche die Maschinensprache einer spezifischen Prozessorarchitektur in einer für den Menschen lesbareren Form repräsentiert. Jede Computerarchitektur hat folglich ihre eigene Assemblersprache.“ - Assembler

Man kann also den Nullen und Einsen, die ein Computer versteht (Maschinensprache), verständliche Namen geben (Assemblersprache). So kann man verstehen, was der Computer tut bzw. im genaue Anweisungen geben, was er tun soll. Die Übersetzung von Assembler(sprache) in Nullen und Einsen ist eine 1 zu 1 Übersetzung und wird von Programmen erledigt, die man auch Assembler nennt. Die umgekehrte Übersetzung leisten Disassembler. Es muss also nichts compiliert oder interpretiert werden, sondern lediglich direkt übersetzt werden.

Unter Windows ist ein Programm dabei, dass diese Übersetzung beherrscht:

debug

Ein schönes Beispiel…

In einer Datei test.asm befinde sich der folgende Text:

a100
jmp 200

e110 "Hallo Welt" 0d 0a "$"

a200
mov dx,110
mov ah,9
int 21
mov ah,4c
int 21

n test.com

rcx
200
w
q

(gute Erläuterungen siehe „Programmiersprache Assembler - Eine strukturierte Einführung“ von Reiner Backer, 1993, Rowohlt Taschenbuch Verlag GmbH)

Mit Hilfe der Eingabe von

debug < test.asm

übersetzt debug den Assemblercode in Maschinensprache und damit in ein ausführbares Programm. Mit der Eingabe von

test

kann dieses Programm ausgeführt und die unglaubliche Ausgabe betrachtet werden.

Außerdem bemerkenswert ist die Größe des Programms! Mit

dir

kann die Größe in Byte betrachtet werden.

Einige wenige Erläuterungen zu den Kürzeln:

Format Befehl Semantik
a [Adresse] Assemble Assembleranweisungen umwandeln
c Bereich Adr Compare Speicherbereiche miteinander vergleichen
d [Adr] oder d [Bereich] Dump Speicherinhalt anzeigen
e Adr Liste Enter Speicherinhalt ändern / eingeben
f Bereich Muster Fill Speicherbereich mit Muster füllen
g [=Adr] [Adr1] [Adr2] … Go Programmausführung mit evtl. Breakpoints
h Wert Wert Hexarithm. hexadez. Addition und Sbtraktion
i Portadresse Input Byte von I/O-Adresse lesen
l [Adr [Laufw Sek. Sek.]] Load Dateien oder abs. Diskettensektoren laden
m Bereich Adr Move Speicherbereich übertragen
n [d:] [Pfad]Name[.erw] Name Dateien und Parameter definieren
o Portadresse Byte Output Byte an I/O-Adresse senden
p [=Adr] [Wert] Proced Stopp bei nächster Instruktion
q Quit DEBUG-Prog. verlassen, zurück zu DOS
r [Reg] Register Register abfragen / Wert zuweisen
s Bereich Liste Search Suche nach Zeichen
t [=Adr] [Wert] Trace Ausführung und Protokoll der Register
u [Adr] oder u [Bereich] Unassemble Code rückübersetzen in Assemblersprache
w [Adr [Laufw Sek. Sek.]] Write Dateien oder abs. Diskettensek. schreiben
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Noncommercial-Share Alike 4.0 International