home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HOT Scene Stuff
/
hotscenestuffzyklop1996.iso
/
diskmags
/
deutsch
/
microcod
/
stod1
/
text
/
text012.txt
< prev
next >
Wrap
Text File
|
1994-11-11
|
8KB
|
198 lines
Ich habe lange überlegt wie ich nun anfange und für wen diese
Rubrik eigentlich gedacht sein soll. Am Ende aller Überlegun-
gen, bin ich schließlich zu der Entscheidung gelangt mit dieser
Rubrik die Assemblersprache von Anfang an zu erklären, um In-
terresierten einen Einstieg zu ermöglichen.
Da gibt es allerdings nur ein Problem, denn bevor man richtig
in die Assembler-Programmierung einsteigen kann, wären einige
Grundkenntnisse über die Funktionsweise einer CPU, binärer Lo-
gik und Zahlensysteme ratsam, allerdings nicht notwendig.
Alle die, die diese Grundkenntnisse schon besitzen, oder sogar
schon erste Erfahrungen in Assembler-Programmierung gemacht ha-
ben, werden in dieser Rubrik also nicht auf Ihre Kosten kommen
(nicht böse sein!).
Themenübersicht:
Teil 1 1.1 Zahlensysteme
1.2 Binäre Logik
1.3 Aufbau eines PC's
1.4 Die CPU
Teil 2 2.1 Assembler-Programmierung
2.2 Prozeduren
2.3 Arithmetikbefehle
2.4 Logikbefehle
2.5 Schleifen und Sprünge
2.6 Felder
2.7 Zeichenketten
Vielleicht wird es auch noch einen dritten Teil geben, aber
daß hängt ganz von der von Euch kommenden Resonanz ab. Wenn
kein Interesse an diesem Einsteiger-Kurs besteht, dann
schreibt es mir bitte.
TEIL 1
1.1 Zahlensysteme
Fangen wir nun an, mit der etwas theoretischen, aber
sehr nützlichen Einführung in die Zahlensysteme, die im
Umgang mit Assembler wichtig sind.
Das Dezimalsystem
Wir kenne alle aus unserem täglichen Umgang mit Zahlen
das Dezimalsystem (Zehnersystem), das Zahlen auf der Ba-
sis von zehn Ziffern darstellt.
Wenn man aber, z.B. die Zahlen
983 und 544
betrachtet, wird nicht unmittelbar klar, warum es sich um
ein Dezimalsystem handelt. Wenn man die Zahlen aber als
Summen aus den Produkten der Ziffern mit der Basis 10
hoch der Postition der Ziffer in der Zahl darstellt wird
es deutlicher:
983 = 9 * 10^2 + 8 * 10^1 + 3 * 10^0 und
544 = 5 * 10^2 + 4 * 10^1 + 4 * 10^0
Für die Programmierung in Assembler wird das Dezimalsys-
tem allerdings sehr selten verwendet, sondern viel häufi-
ger das Dual- und das Hexadezimalsystem.
Das Dualsystem
Das Dualsystem benutzt zur Darstellung von Zahlen nur
zwei Ziffern, die 0 und die 1. Die Zahlen
0101 und 1010
kann man auch wieder als Summen aus Produkten schreiben,
diesmal allerdings mit der Basis zwei hoch der Position
der Ziffer in der Zahl:
0101 = 0 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 5 und
1010 = 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 10
Damit wird auch gleichzeitig klar, wie man Dualzahlen in
Dezimalzahlen umwandelt.
Das Dualsystem liegt jeder digitalen Datenverarbeitungs-
anlage zugrunde, da die Schalt- und Speicherelemente
dieser Anlagen nur zwei Zustände kennen.
Das Hexadezimalsystem
Das Hexadezimalsystem basiert auf 16 verschiedenen Zif-
fern. Da wir aber nur zehn verschiedene Ziffern kennen,
werden die fehlenden sechs Ziffern durch Buchstaben re-
präsentiert, genaugesagt durch die ersten sechs Buchsta-
ben des Alphabetes. Das 'A' steht stellvertretend für die
Ziffer zehn, das 'B' für die Ziffer elf, usw., bis zum
'F', das die Ziffer 15 darstellt. Die Zahlen
083F und AD4E
lassen sich dann auch wieder als Summen aus Produkten
darstellen, diesmal allerdings zur Basis 16 hoch der Po-
sition der Ziffer in der Zahl:
083F = 0 * 16^3 + 8 * 16^2 + 3 * 16^1 +15 * 16^0 = 2111
und
AD4E =10 * 16^3 +13 * 16^2 + 4 * 16^1 +14 * 16^0 =44366
1.2 Binäre Logik
Wie beim Dual-, oder Binär-, system schon erklärt, kennen
Schalt- und Speicherelemente einer DV-Anlage nur zwei Zu-
stände, nämlich 0 oder 1. Man sagt auch eine Ziffer ist
gesetzt (1), oder nicht gesetzt (0).
Die logischen Grundverknüpfungen machen nichts anderes
als reihenweise zwei duale Ziffern nach einer bestimmten
Funtionsvorschrift zu einer zusammenzufassen. Die lo-
gischen Grundverknüpfungen sind die AND, OR, EXOR und die
NOT Funktion.
Die Funktionsvorschrift nach der die einzelnen Ziffern
einer Dualzahl miteinander verknüpft werden, stellt man
am einfachsten in einer Wahrheitstabelle dar.
Der Aufbau einer Wahrheitstabelle wird sehr schnell an
einem Beispiel klar:
Die Wahrheitstabelle der AND Funktion sieht wie folgt
aus:
Ziffer 1 | Ziffer 2 | nach AND
------------------------------------------------
0 | 0 | 0
| |
1 | 0 | 0
| |
0 | 1 | 0
| |
1 | 1 | 1
Man erkennt, daß bei einer AND Verknüpfung das Ergebnis
nur dann 1 wird, wenn beide Ziffern die verknüpft werden
sollen gesetzt, also gleich 1, sind.
Die Wahrheitstabelle der OR Funktion:
Ziffer 1 | Ziffer 2 | nach OR
------------------------------------------------
0 | 0 | 0
| |
1 | 0 | 1
| |
0 | 1 | 1
| |
1 | 1 | 1
Die Wahrheitstabelle der EXOR Funktion:
Ziffer 1 | Ziffer 2 | nach EXOR
------------------------------------------------
0 | 0 | 0
| |
1 | 0 | 1
| |
0 | 1 | 1
| |
1 | 1 | 0
Die Wahrheitstabelle der NOT Funktion, auch Inverter-
Funtion genannt sieht etwas anders aus als die vorange-
gangenen Tabellen, daß liegt daran das die NOT Funtion
nichts anderes macht als eine Ziffer invertiert, also
eine gesetzte Ziffer löscht und eine nicht gesetzte Zif-
fer setzt.
Ziffer 1 | nach NOT
--------------------------------
1 | 0
|
0 | 1
Die logischen Grundverknüpfungen existieren auch als
Assemblerbefehle, deshalb ist es ganz nützlich über die
Funktionsweise dieser Funktionen Bescheid zu wissen.
Damit sind wir für heute auch schon ans Ende des Ein-
steiger-Kurses gelangt.