kramann.info
© Guido Kramann

Login: Passwort:










1.2 Maschinensprache

- was sich durch die Basisarchitektur heutiger Computer für eine Grundgestalt bei der Programmierung auf Maschinenebene ergibt

Grundarchitektur Mikrocontroller / PC im Vergleich

PC Architektur

Bild 1.2-1: PC-Architektur (von Neumann-Architektur)

Mikrocontroller Architektur

Bild 1.2-2: Mikrocontroller-Architektur (Harvard-Architektur)

  • Die vorangehenden Bilder vergleichen die Architektur eines PCs mit der eines Mikrocontrollers.
  • Bedenken Sie: Bei "PC" ist alles gemeint, was beispielsweise in ein Tower-Gehäuse eingebaut wird: Das Motherboard mit der darauf sitzenden CPU (z.B. PenthiumIV oder Athlon-Prozessor) und die eingesteckten Karten.
  • Dagegen ist mit "Mikrocontroller" nur das IC, z.B. der abgebildete ATmega32 gemeint.
  • Stellen Sie sich zunächst ein "Bussystem" als einen Strang paralleler Leitungen vor, der an verschiedenen Stellen von verschiedenen Komponenten angezapft wird.
  • Dabei gibt es Master-Komponenten, die bestimmen, was auf dem Bussystem passiert, hier ist das die CPU und Slave-Komponenten, die auf Anfragen auf dem Bussystem reagieren.
  • Bussysteme unterscheiden sich nach Anzahl der Leitungen, der möglichen Übertragungsgeschwindigkeit und dem so genannten Bus-Protokoll, das die Struktur und den zeitlichen Ablauf der auf das Bussystem geschickten Datenpakete beschreibt und wie Kollisionen zwischen lauschenden und sendenden Komponenten vermieden wird.
  • Statt eines Datenbands wie bei der Turingmaschine, gibt es also beim PC und beim Mikrocontroller ein- bzw. zwei Bussysteme mit angeschlossenem Daten- und Programmspeicher.
  • Nach Neustart des Mikrocontrollers wird aus dem Programmspeicher Befehl für Befehl geladen und abgearbeitet.

Was ist Maschinensprache?

  • Mikrocontroller haben kein Betriebssystem.
  • Werden sie eingeschaltet, oder wird ein Reset durchgeführt, so springt der Programmzähler in der Regel an den Anfang des Programmspeichers und holt von da den ersten Maschinenbefehl in die CPU.
  • Ein solcher Befehl ist nichts anderes als eine Zahl, die beim ATmega32 zwischen 0 und 63 liegt, also mit 6-Bit dargestellt werden kann.
  • Diese Zahl wird dann von der CPU interpretiert.
  • Je nach Befehlscode, folgen ihm weitere Bit-Codierte Parameter.