x86-Programmierung und -Betriebsarten (Teil 1)
In der logischen Adressierung des Speichers bei x86-Prozessoren findet sich auch der Schlüssel für die mitunter recht eigentümlich anmutende Speicherverwaltung, die mit den Prozessoren für PCs einhergeht, was oft zu Missverständnissen und Fehlinterpretationen führt. Demnach ist eine eingehende Untersuchung der (segmentierten) Speicherorganisation und der beteiligten Register notwendig, was durch entsprechende Programmierbeispiele verdeutlicht wird.
Außerdem unterscheidet sich die Speicheradressierung abhängig vom aktiven Betriebsmodus, also je nachdem, ob die CPU (ab 80386) im Real, Protected oder Virtual 8086 Modus arbeitet und ob die Paging Unit aktiv ist oder nicht.
Zur Erklärung der Funktionen muss man keinen der aktuellen hochkomplexen Prozessoren als Referenz heranzuziehen. Die Artikelreihe verwendet deshalb als "einfache" und überschaubare Beispiel-CPU den 80386. Er war der erste 32-Bit-Prozessor in PCs. Seine grundlegende Architektur wurde mit den Nachfolgemodellen (486 bis Pentium III) weitergeführt und jeweils um einige On-Chip-Schaltungselemente (mathematischer Coprozessor, Cache) erweitert. Der 80386 ist zum Verständnis der logischen Adressierung und der Speicherverwaltung von x86-CPUs daher bestens geeignet, das er vergleichsweise einfach zu verstehen ist und die Erkenntnisse trotzdem noch aktuell sind.
Die Artikelserie basiert auf dem Kapitel 6 des "PC Hardwarebuch" von Addison Wesley. Sie können in unserem Buch-Shop das über 1200 Seiten starke Kompendium bestellen oder als eBook downloaden.
| |
Teil 1 | Code-/Datensegment, Befehlszähler und Stack |
---|---|
Teil 2 | Adressierungsarten und Befehlsdekodierung sowie Real Mode |
Teil 3 | Interrupts und Exceptions |
Teil 4 | Der Protected Mode |
Teil 5 | Paging und die MMU |
Teil 6 | Der Virtual-8086-Modus |