

                       Assemblerkurs #1
                       

  Ich habe lange berlegt wie ich nun anfange und fr wen diese 
  Rubrik eigentlich gedacht sein soll. Am Ende aller berlegun-
  gen, bin ich schlielich zu der Entscheidung gelangt mit dieser
  Rubrik die Assemblersprache von Anfang an zu erklren, um In-
  terresierten einen Einstieg zu ermglichen.
  
  Da gibt es allerdings nur ein Problem, denn bevor man richtig
  in die Assembler-Programmierung einsteigen kann, wren einige
  Grundkenntnisse ber die Funktionsweise einer CPU, binrer 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 bse sein!).

  Themenbersicht:

                Teil 1  1.1             Zahlensysteme
                        1.2             Binre 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 Sprnge
                        2.6             Felder             
                        2.7             Zeichenketten

  Vielleicht wird es auch noch einen dritten Teil geben, aber
  da hngt 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 ntzlichen Einfhrung in die Zahlensysteme, die im 
        Umgang mit Assembler wichtig sind.
        
                            
                            Das Dezimalsystem

        Wir kenne alle aus unserem tglichen 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

        
        Fr die Programmierung in Assembler wird das Dezimalsys-
        tem allerdings sehr selten verwendet, sondern viel hufi-
        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 Zustnde 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-
        prsentiert, genaugesagt durch die ersten sechs Buchsta-
        ben des Alphabetes. Das 'A' steht stellvertretend fr die
        Ziffer zehn, das 'B' fr 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   Binre Logik

        Wie beim Dual-, oder Binr-, system schon erklrt, kennen
        Schalt- und Speicherelemente einer DV-Anlage nur zwei Zu-
        stnde, nmlich 0 oder 1. Man sagt auch eine Ziffer ist
        gesetzt (1), oder nicht gesetzt (0).
        Die logischen Grundverknpfungen machen nichts anderes 
        als reihenweise zwei duale Ziffern nach einer bestimmten 
        Funtionsvorschrift zu einer zusammenzufassen. Die lo-
        gischen Grundverknpfungen sind die AND, OR, EXOR und die
        NOT Funktion.
        Die Funktionsvorschrift nach der die einzelnen Ziffern
        einer Dualzahl miteinander verknpft 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 Verknpfung das Ergebnis
        nur dann 1 wird, wenn beide Ziffern die verknpft 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 lscht und eine nicht gesetzte Zif-
        fer setzt.

                Ziffer 1   |     nach NOT
             --------------------------------
                   1       |         0
                           |
                   0       |         1

        Die logischen Grundverknpfungen existieren auch als 
        Assemblerbefehle, deshalb ist es ganz ntzlich ber die
        Funktionsweise dieser Funktionen Bescheid zu wissen.

        Damit sind wir fr heute auch schon ans Ende des Ein-
        steiger-Kurses gelangt.


                                               Gabriel

