Grin logo
en de es fr
Shop
GRIN Website
Publish your texts - enjoy our full service for authors
Go to shop › Computer Science - Software

Assembler - Maschinensprache

Title: Assembler - Maschinensprache

Presentation / Essay (Pre-University) , 2002 , 7 Pages , Grade: 1

Autor:in: Christopher Frank (Author)

Computer Science - Software
Excerpt & Details   Look inside the ebook
Summary Excerpt Details

Excerpt


Assembler ­ Vortrag
Gliederung:
1.Definition und Erläuterung des Begriffs Assembler
2.Was man mit dem Assembler machen kann und was der Assembler kann
3.Assembler Befehle und Erläuterungen dazu
Assemblerdefinition und Erläuterung
Definition laut Lexikon: engl. Übersetzungsprogramm eines Computers, das ein in
Assemblersprache geschriebenes Programm in
Maschinensprache
Übersetzt.
Assemblersprache: Eine ebenfalls als Assembler bezeichnete, maschinenorientierte
Programmiersprache
Unterschied zwischen Assembler und Maschinensprache ist, das ein Computer nur die
Maschinensprache versteht. Darunter kann man sich lange Folgen von Nullen und
Einsen vorstellen, die intern vom Rechner in Form von Spannungs- und
Magnetisierungsimpulsen. Eine Solche Sprache ist selbst für absolute Computerfreaks
kaum handhabbar, deshalb hat manden Assembler eingeführt. Hierbei werden
diese Nullen und Einsen, durch einen symbolischen Namen ausgedrückt.
Bits und Bytes: Bits sind die kleinste darstellbare Informationseinheit; ein Byte
besteht aus
jeweils 8 Bits
Programmiersprache wie C++, Delphi und Turbo Pascal enthalten einen Quelltext,
wie z.B.
Diesen:
Turbo Pascal
programm vortrag;
uses wincrt;
var a,b,c :Integer;
begin
writeln('Dieses Programm addiert ihnen zwei Zahlen');
writeln('Bitte geben sie die erste Zahl ein: ');readln(a);
writeln('Bitte geben sie die zweite Zahl ein: ');readln(b);
c:=a+b;
writeln('Die Summe beider Zahlen ist:',c);
end.
(Grafik 1)
Dieser Quelltext wird von einem Compiler in die Maschinensprache-Assembler
umgesetzt.

Hierbei wird der Quelltext analysiert(also Interpretiert) und die komplexen
Hochsprachenbefehle in die viel einfachere Maschinensprache Umgesetzt, ohne dass
der Programmierer mit Details über den Ablauf konfrontiert wird oder er die
Möglichkeit hat einzugreifen während des Vorgangs.
Im Gegensatz zu diesen Programmiersprachen besteht ein Assemblerprogramm nicht
aus komplexen Befehlen, sondern aus einfachen Kürzeln, die eine direkte
Entsprechung in der Maschinensprache des Computers besitzen. Demzufolge wird ein
Assemblerprogramm bei der Umwandlung in Maschinensprache nicht analysiert und
Umgewandelt, sondern nur it einer einfachen Umsetzungstabelle in
Maschinensprache überführt .Dadurch hat der Assembler Programmierer die volle
Kontrolle über den Computer, ohne den Zwischenschritt über den Compiler.
Beim Programmieren werden verschiedene Zahlensysteme angewendet. Dies hat den
Sinn, dass sich manche Zusammenhänge im richtigen Zahlenformat leichter
erschließen. Es gibt das dezimale Zahlensystem(Es ist das Zahlensystem das jedem
seit der Grundschule geläufig ist, es beinhaltet die Zahlen 0-9).Dann das binäre
Zahlensystem (beinhaltet die Zahlen 0-1).Und das Hexadezimalsystem(Beinhaltet die
Zahlen 0-F).Nicht nur die Hochsprachen Programme, sondern auch Assembler kann
mit allen umgehen.
Der Assembler kennt mehrere Möglichkeiten um Zahlen Anzugeben bzw. zu
Adressieren
Das Angeben von Konstanten: -Konstanten werden mit einem # davor
gekennzeichnet
-Als Beispiel.: Die Zahl # 231(Dezimalsystem)
#0E7h(Hexadezimalsystem)
#11100111(Binärsystem)
(Grafik 2)
Adressierungsmöglichkeiten:
1.Direkte Adressierung: Die direkte Adressierung geschieht durch die Angabe der
Nummer
des gewünschten Bytes oder über ein vorher im
Assembler
festgelegtes Symbol. Um Beispielsweise die Speicherstelle
10
anzusprechen, muss man also die Nummer 10 im
Programmquelltext
angeben. Oder die Nummer wurde vorher mit einem
Namen belegt,
den man dann einfach im Programmquelltext angeben
muss.
Für den Assembler ist es gleichgültig, ob eine Adresse als
Nummer
oder über den Umweg des Symbols bzw. Namens
angegeben wird.
Der Vorteil der Anwendung eines Symbols bzw. Namens
ist, dass der
Quelltext viel übersichtlicher wird.

2.Indirekte Adressierung: Diese ist nur bei wenigen Registern und Befehlen möglich.
Es wird wie folgt angegeben: R1,hierbei wird nicht der
Registerinhalt, sondern die Nummer der Speicherstelle,
deren Inhalt
im Register steht angegeben. Enthält R1 beispielsweise
10 und steht
in der Speicherstelle 10 der Wert 38, so gibt R1 den
Wert 38
wieder.
3.Basisrelative Adressierung: Diese Adressierungsart addiert zwei Werte um dann wie
bei der
indirekten Adressierung die endgültige
Speicherstelle zu
ermitteln.
Assemblerbefehle:
Die Assemblerbefehle gliedern sich in mehrere Kategorien:
1.Befehle zum Datentransfer: hierzu gehört als wichtigster der MOV Befehl. Der
Befehl
MOV kopiert ein Byte von Quelle zum Ziel. Siehe
Grafik 2 !
2.Unbedingte Sprünge: Es gibt den Befehl JMP, dieser verzweigt zu einer
angegebenen
Adresse, indem man nach dem JMP Befehl die
gewünschte Adresse in
Form eines Labels(also eines Namens) schreibt. Siehe
Grafik 2 !
$NOMOD51
$INCLUDE (89C1051.MCU)
mov P3,#11111111b
main:
mov P1,P3
jmp main
END
(Grafik 3)
3.Bedingte Sprünge: Das waren nun die zwei wichtigsten Befehle, die etwa 50%
jedes
Programms ausmachen, etwas sinnvolles lässt sich damit
aber noch
nicht machen. Um Interaktivität in das Programm zu
bringen, braucht

man bedingte Sprünge. Diese führen in Abhängigkeit von
bestimmten
Bedingungen Sprünge zu dem angegebenen Label durch
oder nicht.
Hier gibt es die Befehle JB(Jump if Bit is Set),JNB(Jump if
Bit is not
set) und JBC(Jump if Bit is set and clear Bit), diese führen
nach
bestimmten Bedingungen Sprünge durch .JB springt zum
Sprungziel
wenn das angegebene Bit auf 1 gesetzt ist. JNB springt
zum
Sprungziel, wenn das angegebene Bit auf 0 gesetzt bzw.
gelöscht ist.
JBC springt zum Sprungziel, wenn das Bit auf 1 gesetzt ist
und löscht
dieses danach. Das hat den Sinn die Rechenleistung zu
optimieren, da
dieser Befehl schneller ist als ein JB Befehl in Verbindung
mit einem
Löschbefehl und benötigt weniger Speicher.
JB [Bit],Sprungziel
JNB [Bit],Sprungziel
JBC [Bit],Sprungziel
(Grafik 4)
Des weiteren gibt es noch die Befehle JC,JNC,JZ,JNZ und
noch
Einige andere die ja nach bestimmten Bedingungen
Sprünge zum
gewünschten Sprungziel durchführen.
4.Mathematik Befehle: Als nächstes ziehen wir die Mathematikbefehle unter betracht.
Als einfachster Mathematik Befehl ist der ADD Befehl zu
nennen,
dieser Addiert den Inhalt zweier Bytes. Der gegensätzliche
Befehl
dazu lautet SUBB, dieser Subtrahiert den Inhalt eines Byte
von dem
eines anderen. Es gibt noch den Multiplikationsbefehl
MUL, dieser
multipliziert den Inhalt zweier Bytes miteinander. Im
Gegensatz dazu
gibt es den Divisionsbefehl DIV, dieser dividiert den Inhalt
eines
Bytes von dem eines anderen. Die Zählbefehle INC und
DEC gibt es

auch noch, wobei INC jeweils um 1 erhöht, also hoch
zählt und DEC
jeweils um 1 verringert, also nach unten zählt.
5.Unterprogrammbefehle: Es gibt Befehle, die dazu dienen Unterprogramme
aufzurufen bzw.
vom Unterprogramm ins Hauptprogramm
zurückzukehren. Die
Befehle CALL dient dazu ein Unterprogramm
aufzurufen und nach der Ausführung des
Unterprogramms an der
Stelle im Hauptprogramm weiterzumachen, an der das
Hauptprogramm verlassen. RET und RETI dienen dem
Zurückspringen vom Unterprogramm ins
Hauptprogramm.
; ...Hauptprogramm ...
call unterprogramm
; ... weitere Befehle des Hauptprogramms ...
unterprogramm:
; ... Befehle des Unterprogramms ...
call unterprogramm1
call unterprogramm2
; ...
ret
unterprogramm1:
; ...
ret
unterprogramm2:
; ...
ret
(Grafik 5)
6.Logische Operationen und Bitmanipulationen: Bitmanipulation:
Die Befehle CLR, SETB und
CPL wirken
auf ein einzelnes Bit, sie
manipulieren den
Zustand eines Bits.
CLR(Clear)setzt ein Bit
auf 0.SETB(Set Bit) setzt ein
Bit auf 1 und
CPL negiert den Zustand
eines Bits, also
dreht ihn um(von 0 auf 1
bzw. von 1 auf 0).

Logische Operationen:(Grafik
5)
Der Befehl ANL bildet das
logische UND
zweier Bits. Das Ergebnisbit
ist nur dann
gesetzt, wenn beide
Inputbits gesetzt sind.
Der Befehl ORL bildet das
logische ODER
zweier Bits. Das Ergebnisbit
ist gesetzt,
sobald eines der beiden
Inputbits gesetzt ist.
Der Befehl XRL bildet das
logische
Entweder-Oder zweier Bits.
Das Ergebnisbit
ist nur gesetzt, wenn ein
einzelnes der
beiden Inputbits gesetzt ist.
ANL
Input 1 Input 2 Ergebnis ANL
0
0
0
0
1
0
1
0
0
1
1
1
ORL
Input 1 Input 2 Ergebnis ORL
0
0
0
0
1
1
1
0
1
1
1
1
XRL
Input 1 Input 2 Ergebnis XRL
0
0
0
0
1
1
1
0
1
1
1
0
7.Der Befehl NOP: Der Befehl NOP(No Operation) ist der einfachste von allen
Assembler
Befehlen, da absolut nichts macht, er braucht bloß Speicher
und wird
deshalb für Warteschleifen verwendet.

Quellen:
Internetseite:
http://www.e-online.de/public/buchmann/assembler.htm
(Stand
08.01.2002)
Buch: Das große Commodore 64 Buch, Data Becker, Verfasst von Hecht, 5. Auflage
1991,
Seite 367-386
Buch: Meyers Taschenlexikon in einem Band, B.I. Taschenbuch Verlag, 3.Auflage
1997,
Seite 54

Häufig gestellte Fragen

Was ist ein Assembler laut Lexikon?

Ein englisches Übersetzungsprogramm eines Computers, das ein in Assemblersprache geschriebenes Programm in Maschinensprache übersetzt. Assemblersprache ist eine maschinenorientierte Programmiersprache.

Was ist der Unterschied zwischen Assembler und Maschinensprache?

Ein Computer versteht nur Maschinensprache, die aus langen Folgen von Nullen und Einsen besteht. Assembler verwendet symbolische Namen anstelle von Nullen und Einsen.

Was sind Bits und Bytes?

Bits sind die kleinste darstellbare Informationseinheit. Ein Byte besteht aus 8 Bits.

Wie funktioniert die Übersetzung von Quellcode in Maschinensprache bei Hochsprachenprogrammen im Vergleich zu Assemblerprogrammen?

Hochsprachenprogramme (z.B. C++, Delphi, Turbo Pascal) werden von einem Compiler analysiert und in Maschinensprache übersetzt. Assemblerprogramme werden nicht analysiert, sondern mit einer einfachen Umsetzungstabelle in Maschinensprache überführt.

Welche Zahlensysteme werden beim Programmieren verwendet?

Dezimal (0-9), Binär (0-1) und Hexadezimal (0-F).

Wie werden Konstanten im Assembler angegeben?

Mit einem # davor, z.B. #231 (Dezimal), #0E7h (Hexadezimal), #11100111 (Binär).

Welche Adressierungsmöglichkeiten gibt es im Assembler?

1. Direkte Adressierung (Angabe der Nummer des gewünschten Bytes oder eines Symbols). 2. Indirekte Adressierung (Angabe eines Registers, dessen Inhalt die Adresse der Speicherstelle ist). 3. Basisrelative Adressierung (Addition zweier Werte zur Ermittlung der Speicherstelle).

Welche Kategorien von Assemblerbefehlen gibt es?

1. Datentransfer (z.B. MOV). 2. Unbedingte Sprünge (z.B. JMP). 3. Bedingte Sprünge (z.B. JB, JNB, JBC). 4. Mathematikbefehle (z.B. ADD, SUBB, MUL, DIV, INC, DEC). 5. Unterprogrammbefehle (z.B. CALL, RET, RETI). 6. Logische Operationen und Bitmanipulationen (z.B. CLR, SETB, CPL, ANL, ORL, XRL). 7. NOP (No Operation).

Was macht der MOV Befehl?

Der MOV Befehl kopiert ein Byte von Quelle zum Ziel.

Was macht der JMP Befehl?

Der JMP Befehl verzweigt zu einer angegebenen Adresse (Label).

Was machen die bedingten Sprungbefehle JB, JNB und JBC?

JB (Jump if Bit is Set) springt, wenn das angegebene Bit auf 1 gesetzt ist. JNB (Jump if Bit is not Set) springt, wenn das Bit auf 0 gesetzt ist. JBC (Jump if Bit is set and clear Bit) springt, wenn das Bit auf 1 gesetzt ist und löscht es danach.

Was machen die Mathematikbefehle ADD, SUBB, MUL und DIV?

ADD addiert den Inhalt zweier Bytes. SUBB subtrahiert den Inhalt eines Byte von dem eines anderen. MUL multipliziert den Inhalt zweier Bytes miteinander. DIV dividiert den Inhalt eines Bytes von dem eines anderen.

Was machen die Befehle INC und DEC?

INC erhöht jeweils um 1 und DEC verringert jeweils um 1.

Was machen die Unterprogrammbefehle CALL und RET?

CALL ruft ein Unterprogramm auf. RET springt vom Unterprogramm ins Hauptprogramm zurück.

Was machen die Bitmanipulationsbefehle CLR, SETB und CPL?

CLR (Clear) setzt ein Bit auf 0. SETB (Set Bit) setzt ein Bit auf 1. CPL negiert den Zustand eines Bits (von 0 auf 1 bzw. von 1 auf 0).

Was machen die logischen Operationen ANL, ORL und XRL?

ANL bildet das logische UND zweier Bits. ORL bildet das logische ODER zweier Bits. XRL bildet das logische Entweder-Oder zweier Bits.

Was macht der Befehl NOP?

Der Befehl NOP (No Operation) macht nichts und wird für Warteschleifen verwendet.

Woher stammen die Informationen in diesem Dokument?

Internetseite: http://www.e-online.de/public/buchmann/assembler.htm (Stand 08.01.2002)
Buch: Das große Commodore 64 Buch, Data Becker, Verfasst von Hecht, 5. Auflage 1991, Seite 367-386
Buch: Meyers Taschenlexikon in einem Band, B.I. Taschenbuch Verlag, 3.Auflage 1997, Seite 54

Excerpt out of 7 pages  - scroll top

Details

Title
Assembler - Maschinensprache
Grade
1
Author
Christopher Frank (Author)
Publication Year
2002
Pages
7
Catalog Number
V105906
ISBN (eBook)
9783640041855
Language
German
Tags
Assembler Maschinensprache
Product Safety
GRIN Publishing GmbH
Quote paper
Christopher Frank (Author), 2002, Assembler - Maschinensprache, Munich, GRIN Verlag, https://www.grin.com/document/105906
Look inside the ebook
  • Depending on your browser, you might see this message in place of the failed image.
  • https://cdn.openpublishing.com/images/brand/1/preview_popup_advertising.jpg
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
Excerpt from  7  pages
Grin logo
  • Grin.com
  • Payment & Shipping
  • Contact
  • Privacy
  • Terms
  • Imprint