Mittwoch, 19. Oktober 2011

C und die Welt von Assembler - Teil 2


Die CPU und ihre Partner
Da der Programmcode von Assembler dazu dient CPU's zu Programmieren, sollte man die CPU verstehen. Die CPU (CentralProcessingUnit) ist der Kern jedes Computers. Hier werden die Berechnungen, welche man Programmiert, durchgeführt.
Neben der CPU gibt es im Computer noch einige wichtige Komponenten. Dies währen:

  • ein Speicher z.Bsp. RAM ( RandomAccessMemory), oder eine Harddisk
  • I/O (Input/Output, Ein- /Ausgabegeräte) z.Bsp. Tastatur, Bildschirm, usw.
  • Bus - System. Als Bus System sind Leitungen zu verstehen welche die einzelnen Komponenten verbinden. Diese befinden sich meistens auf einer Motherboard.
Die CPU unterteilt man in:
  1. Prozessor (Steuerwerk)
  2. Der Prozessor verarbeitet alle eingehenden Informationen in Form von elektrischen Signalpegeln und steuert deren Weiterleitung
    • in den internen Speicher,
    • auf externe Speichergeräte wie z.B die Festplatte,
    • auf Ausgabegeräte wie Bildschirm oder Drucker
    Oft werden vom Prozessor Informationen an die ALU weitergeleitet.
  3. ALU (ArithmeticLogicUnit
    Die ALU kann arithmetische und logische Funktionen berechnen. Dabei sind die möglichen Operationen auf folgende eingeschränkt:
    • Arithmetisch:
      • Addition (ADD)
      • Subtraktion (SUB)
    • Logisch:
      • Negation (NOT)
      • Konjunktion (AND)
      • Disjunktion (OR)
      • Vergleich (compare, CMP)
      • Kontravalenz (XOR)
    • Sonstige:
      • Rechts- und Linksverschiebung (arithmetische Shift, ASR/ASL)
      • Rechts- und Linksverschiebung (logisches Verschieben, LSR/ASL)
      • Rechts- und Linksrotation (ROL, ROR)
      • Register-Manipulationen und Bit-Veränderungen (Bits setzen, löschen und testen)
  4. Interner Speicher (Register)
    Informationen, auf die der Prozessor schnell zugreifen muss, werden im internen Speicher (sogenannter flüchtiger Speicher in Speicherchips) abgelegt.
    • RAM(Random-Access-Memory)
      Von allen internen Speicher eines Computers ist der RAM einer der langsamsten. Dies weil er nicht direkt in der CPU ist sondern meistens über einen Bus auf der Motherboard mit dieser verbunden. Dafür ist er um einiges größer als andere interne Speicher. Hier werden die Programme welche zurzeit ausgeführt werden Gespeichert. Je nach Betriebssystem und Hardware Konfiguration variiert die Wichtigkeit oder auch die Einsatzweise des RAM's.
    • Register
      Der Speicherbereich innerhalb einer CPU welcher direkt mit dem Prozessor verbunden ist nennt man Register.  Diese Speicher sind die schnellsten Speicher eines Computers. Da sie direkt in der CPU sind und so über kein Bussystem verlangsamt werden.
      Es gibt verschiedene Typen von Registern:
      • Datenregister (Akkumulator)
        Datenregister werden benutzt, um Operanden für die ALU und deren Resultate zu speichern.
      • Adressregister(Datenverarbeitung)
        Adressregister werden benützt um Speicheradressen von Operanden oder Befehlen zu berechnen. Das Adressregister bestimmt wie der Prozessor die Operanden findet und wie er die Ergebnisse abspeichern soll.
      • Frei verwendbare Register
        In modernen RISC-CPUs, so PowerPC oder Sun SPARC, heißen die Datenregister allgemeine oder frei verwendbare Register, da sie sich beliebig als Daten- oder Adressregister einsetzen lassen.
      • Stapelregister
        Stapelregister sind Adressregister zur Verwaltung von Stapelspeichern.
        Ein Stapel kann eine theoretisch beliebige, in der Praxis jedoch begrenzte Menge von Objekten aufnehmen. Elemente können nur oben auf den Stapel gelegt und auch nur von dort wieder gelesen werden. Elemente werden übereinander gestapelt und in umgekehrter Reihenfolge vom Stapel genommen.
      • Spezialregister (Hilfsregister für Prozessor)
        • Befehlszählregister, auch Programmzähler oder Befehlszähler.
        •  Befehlsregister, speichert den aktuellen Befehl
        •  Basisregister
        •  Segmentregister
        •  Statusregister, geben bestimmte Zustände nach Ausführung eines Befehls an
        •  Interrupt-Steuerregister
    Das Zusammenspiel dieser Komponenten ermöglicht das Berechnen einiger Befehle. Welche im Programmcode geschrieben und mit Assembler übersetzt werden. Diese befehle beinhalten einfache Schritte welche die CPU ausführen kann. Eine clevere Kombination dieser befehle ermöglicht schlussendlich, komplexe Berechnungen wie sie Heute von den Meisten Computern ausgeführt werden.


C - simple programs
---------------------------------------------------------------------------------
Captain Malgardi
Malgardis Crew
become a fan on Facebook : Malgardi Fan!

3 Kommentare:

  1. finde aucj ser gude bllok teill 2.
    freue mihch auf teill 3

    AntwortenLöschen
  2. dies sein ein sehr interesanter Blog, können sie auch schreiben in kosovarisch?

    AntwortenLöschen
  3. tnx, Nein sry, aber Kosovarisch kann ich nicht.

    AntwortenLöschen