Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier.


Arithmetisch-Logische Einheit

Die ALU hat die Aufgabe, arithmetische und logische Verknüpfungen vorzunehmen. Je nach Typ des Mikroprozessors sind die arithmetischen Befehle unterschiedlich stark ausgeprägt. Das Spektrum der Befehle reicht von der Addition und der Subtraktion über Befehle zur Unterstützung von BCD-Arithmetik bis zu Gleitkommabefehlen in sehr leistungsfähigen Mikroprozessoren.

Die logischen Befehle sind in allen Mikroprozessoren ziemlich gleich, so kommen praktisch in allen Prozessoren Befehle zur Bildung der logischen Grundfunktionen vor (UND, ODER, NICHT, XOR) oder Befehle zum Links- oder Rechtsschieben von Daten.

Üblicherweise besitzt die ALU zwei Eingänge und einen Ausgang. Außerdem erzeugt die ALU in Abhängigkeit der durchgeführten Rechenoperation verschiedene Statusmeldungen, die in einem Statusregister gespeichert werden. Im Statusregister besitzt jedes Bit eine bestimmte Bedeutung (im Englischen werden diese Bits auch 'flags' genannt). Einige wenige, sehr oft verwendete Statusbits seien im Folgenden kurz beschrieben.

Carry, C

Das Carry-Flag (dt: Übertrag) hat die Funktion, einen Übertrag bei arithmetischen Operationen aufzunehmen, der bei Additionen und Subtraktionen auftreten kann. Addiert man z.B. die in einem Byte dargestellten Zahlen 166 und 239, so kann das Ergebnis nicht mehr in einem Byte aufgenommen werden, da es neun Bit zur Darstellung benötigt. In binärer Schreibweise stellt sich die Situation wie folgt dar:

                        1 0 1 0 0 1 1 0         (166)
               +        1 1 1 0 1 1 1 1         (239)
               =     1  1 0 0 1 0 1 0 1         (405)

Um nun trotzdem beliebige acht Bit breite Zahlen addieren zu können, wird das entstehende neunte Bit in das Carry-Flag übernommen. Das Carry-Flag kann dann von speziellen Befehlen weiterverwendet werden. Bei größeren Mikroprozessoren (z.B. 16 oder 32 Bit) tritt ein Übertrag erst bei entsprechend größeren Zahlen auf. Das Carry-Flag wird außerdem zur Aufnahme von Bits bei Schiebeoperationen verwendet.

Zero, Z

Das Zero-Bit zeigt an, ob das Ergebnis einer Operation null ist. Es wird immer dann auf 1 gesetzt, wenn das Ergebnis einer arithmetischen oder logischen Operation gleich null ist. So wird z.B. beim Befehl COMPARE, der zwei Zahlen vergleicht, das Zero-Flag auf eins gesetzt, wenn die Zahlen gleich sind.

Sign, S

Das Sign-Flag (dt.: Vorzeichen) ist unmittelbar mit dem MSB (most significant bit) eines Registers verbunden und zeigt bei Zweierkomplementdarstellung das Vorzeichen der dargestellten Zahl an.

Overflow, V

Das Overflow-Flag (dt: Überlauf) wird nur für Berechnungen mit Zahlen in Zweierkomplementdarstellung benötigt. Es zeigt an, dass ein Überlauf der arithmetischen Operation zu einer Vorzeichenänderung der dargestellten Zahl geführt hat. Das Overflow-Bit wird durch exklusives Oder aus dem Carry-Flag und dem Sign-Flag gebildet.


Last Update: 2008-05-31