Interrupts, Speichersegmente und MASM-Anweisungen erklärt
Classified in Informatik
Written at on Deutsch with a size of 3,07 KB.
Kategorien von Interrupts
Es gibt verschiedene Arten von Interrupts:
- CPU-Interrupts: Diese werden von der CPU selbst ausgelöst.
- Hardware-Interrupts: Diese werden von externen Geräten ausgelöst.
- ROM BIOS-Funktionen: Grundlegende Dienste, die im ROM verfügbar sind.
- DOS-BIOS-Dienste: Grundfunktionen, die von DOS bereitgestellt werden.
- DOS-Funktionen: High-Level-Funktionen für den Umgang mit Dateisystem und I/O.
Einige häufige Interrupt-Funktionen
- Funktion 01h: Ermöglicht die Eingabe eines Zeichens von der Tastatur und zeigt dieses an der Cursorposition an.
- Funktion 02h: Gibt ein Zeichen vom Prozessor auf dem Bildschirm aus. Das Zeichen muss im DL-Register gespeichert sein und wird an der Cursorposition angezeigt.
- Funktion 09h: Zeigt eine Zeichenkette auf dem Bildschirm an, beginnend an der Cursorposition.
- Funktion 4Ch: Beendet den Prozess mit einem Returncode und kehrt zum Betriebssystem zurück.
Speichersegmente
Programme im Speicher sind in verschiedene Abschnitte oder Segmente unterteilt, um den Speicher zu organisieren.
Arten von Speichersegmenten
- CS (Code-Segment): Enthält die Maschinensprache-Anweisungen des Programms.
- DS (Data-Segment): Enthält globale Variablen des Programms.
- SS (Stack-Segment): Speichert Funktionsaufrufe, Parameter von Funktionen und lokale Variablen. Ein "Stack Overflow" tritt auf, wenn der Stack zu voll wird.
- HS (Heap-Segment): Speichert dynamisch zur Laufzeit erstellte Objekte.
MASM-Anweisungen (Direktiven)
MASM (Microsoft Macro Assembler) verwendet Direktiven, um die Organisation des Speichers anzugeben, bedingte Assemblierung auszuführen, Makros zu definieren, Input/Output zu steuern und Informationen über die Struktur eines Programms bereitzustellen.
Wichtige Direktiven
Befehlssatz
Diese Direktiven legen den Befehlssatz für einen Mikroprozessor fest:
- .8086 (Standard): Aktiviert Anweisungen für 8086 und 8088, deaktiviert für 80186 und 80286.
- .8087 (Standard): Aktiviert Anweisungen für 8087, deaktiviert für 80287.
- .186: Aktiviert 80186-Anweisungen.
- .286: Ermöglicht 80286-Anweisungen im ungeschützten Modus.
- .286S: Ermöglicht 80286-Anweisungen im geschützten und ungeschützten Modus.
- .287: Aktiviert 80287-Anweisungen.
Segmente
Die Direktiven SEGMENT
und ENDS
definieren den Anfang und das Ende eines Programmsegments.
Ein Programmsegment ist eine Sammlung von Anweisungen und/oder Daten, deren Adressen relativ zum gleichen Segmentregister sind.
Ausrichtungsoptionen, Kombinationen und Informationen werden an den Linker weitergegeben, um die Segmente anzupassen.
Ausrichtung
Folgende Werte sind für die Ausrichtung möglich:
- byte: Beliebige Byte-Adresse.
- word: Beliebige Wort-Adresse (2 Byte/Wort).
- para: Absatz-Adresse (16 Byte/Absatz, Standard).
- page: Seiten-Adresse (256 Byte/Seite).