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).

Entradas relacionadas: