6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Rechnergrundlagen Teil 2 - 10 - Prof. Dipl.-Ing. Komar<br />
Z Zero ZR / NZ zeigt an, ob das Ergebnis einer Operation 0 ist<br />
S Sign NG / PL zeigt das Vorzeichen <strong>eines</strong> Ergebnisses an ( höchstwertiges Bit )<br />
O Overflow OV / NV Überlauf, d.h. Vorzeichenumkehr, Überschreiten des Zahlenbereiches<br />
vorzeichenbehafteter Dualzahlen<br />
Steuerflags<br />
D Direction DN / UP gibt bei Stringoperationen die Indexrichtung (inkrementieren oder<br />
dekrementieren) an<br />
I Interrupt Enable EI / DI maskierbare externe Interrupts werden zugelassen (INTR-Eingang)<br />
/ gesperrt<br />
T Trap nach Ausführung <strong>eines</strong> Maschinenbefehls wird ein Interrupt<br />
ausgelöst, um Programme zu testen ( Einzelschrittmodus )<br />
7.1.1 Adressierung<br />
Im Real -Mode arbeiten die 80x86-Prozessoren mit einer 20-Bit-Adresse und können damit einen Speicher -<br />
bereich von 1 Mbyte adressieren.<br />
Da aber nur 16 Bit breite Register zur Verfügung stehen, wird die physikalische 20-Bit-Adresse aus einer<br />
effektiven 16-Bit-Adresse ( Offsetadresse ) und einem Segmentregisterinhalte (16 Bit) automatisch im<br />
Prozessor gebildet ( Segment : Offset )<br />
Dazu wird der Segmentregisterinhalt um 4 Stellen nach links geshiftet (entspricht Multiplikation mit 1610 )<br />
und die Offsetadresse addiert.<br />
Physikalische Adresse ( 20 Bit ) = Segmentadresse ( 16 Bit ) * 1610 + Offsetadresse (16 Bit )<br />
Bei der Programmcodeadressierung bilden das Codesegmentregister und der Instruction-Pointer ein Paar<br />
und man schreibt<br />
CS : IP z.B. 4F7E : 2100<br />
Offsetadresse 2 1 0 0 h<br />
Segmentadresse * 16 + 4 F 7 E h<br />
_____________________<br />
absolute Adresse = 5 1 8 E 0 h<br />
Die Summe von Segment- und Offsetadresse führt immer zu einem eindeutigen Ergebnis, umgekehrt kann von<br />
einer absoluten Adresse nicht eindeutig auf eine Offset- und Segmentadresse geschlossen werden, da es eine<br />
Vielzahl möglicher Kombinationen gibt.<br />
Eine Änderung der Segmentadresse um 1 bewirkt eine Änderung der absoluten ( physikalischen ) Adresse<br />
um nur 16 ( = 1 Paragraph )<br />
Jedem Programm das unter DOS läuft, werden im Speicher das Codesegment CS, das Datensegment DS, das<br />
Stacksegment SS und das Extrasegment ES zugewiesen.<br />
Ein einzelnes Segment, dessen Beginn durch den Inhalt des Segmentregisters festgelegt wird, kann 64 kByte<br />
groß sein. Die einzelnen Segmente können völlig getrennt sein oder sich mehr oder weniger überlappen.<br />
Durch diese vier Segmentregister ist es möglich, vier verschiedene Speicherbereiche gleichzeitig in einem<br />
Programm anzusprechen.<br />
Beim Laden von .COM-Programmen werden von DOS alle vier Segmentregister auf die gleiche freie<br />
Adresse im Arbeitsspeicher gesetzt.<br />
Damit stehen in COM-Programmen nur 64 kByte Speicher zur Verfügung und man arbeitet im Grunde wie<br />
bei einer 16-Bit-Adressmaschine nur mit den Offsetadressen.<br />
Folgende Registerpaare sind zur Adreßbildung einander fest zugeordnet: Befehlsadresse CS : IP<br />
Stapeladresse SS : SP<br />
Zieladresse ES : DI