18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!