Assembler-Programmierung: Segmente, Direktiven und Operanden

Eingeordnet in Elektronik

Geschrieben am in Deutsch mit einer Größe von 3,87 KB

Kombination von Segmenten

Die Kombination definiert, wie Segmente mit demselben Namen verbunden werden. Mögliche Werte sind:

  • PUBLIC: Alle Segmente werden zu einem verkettet.
  • STACK: Ähnlich wie PUBLIC, jedoch mit SS-Adressen für die Registrierung.
  • COMMON: Überlappende Segmente, bei denen alle am gleichen Startpunkt beginnen.
  • MEMORY: Wird durch LINK-Segmente angezeigt, die wie MASM mit öffentlichen Adressen umgehen.

Segment-Klassifizierung

CLASS kennzeichnet die Art des Segments und versieht es mit einem Namen.

Programmstruktur und Direktiven

END-Direktive

Die END-Richtlinie markiert das Ende eines Moduls. Beim Erreichen dieser Anweisung ignoriert der Assembler jegliche nachfolgenden Angaben.

ASSUME-Direktive

Mit der ASSUME-Direktive können Sie angeben, welche Standardwerte die Segmentregister übernehmen sollen.

Labels (Etiketten)

Labels sind deklarierte Namen, wobei der Name als String definiert ist.

Datendeklaration

Daten werden nach ihrem Typ deklariert. Die Syntax lautet: [Name] Richtlinie Wert. Mögliche Richtlinien sind:

  • DB: Bytes
  • DW: Wörter
  • DD: Doppelwort
  • DQ: Quad Word
  • DT: Zehn Bytes

Zusätzlich können Sie LABEL (zum Erstellen von Labels für Befehle oder Daten), EQU (zum Erstellen von Gleichheitssymbolen) und das Symbol = (für absolute Zuweisungen) verwenden.

Strukturen

Für die Deklaration von Datenstrukturen wird die STRUC-Richtlinie verwendet.

Befehlssatz und Operanden

Anweisungen: Lineare Abläufe, Bewegung, Stack-Operationen, mathematische Berechnungen, Vergleiche, Sprünge (bedingt/unbedingt), Schleifen, logische Operatoren, Verschiebungen, Zirkular-Operationen, Prozesssteuerung, Flags, Kettenoperationen und Datentransfer.

Operanden: Sie repräsentieren Werte, Register oder Speicherplätze, auf die zugegriffen wird.

Ausdrücke: Sie kombinieren Operanden mit arithmetischen und logischen Operatoren, um einen Wert oder eine Speicheradresse zu berechnen.

Adressierungsarten

  • Konstanten: Zahlen, Strings oder Ausdrücke mit festem Wert.
  • Direkt: Angabe der Speicheradresse im Format Segment:Offset.
  • Relocatable: Ein Symbol, das mit einer Speicheradresse verknüpft ist.
  • Location Counter: Wird durch das Symbol $ dargestellt und gibt die aktuelle Position im Segment an.
  • Register: Bezugnahme auf Universalregister, Zeiger, Indizes oder Segmentregister.
  • Basierend: Speicheradresse basierend auf Basisregistern (BP oder BX).
  • Indiziert: Speicheradresse basierend auf Indexregistern (SI oder DI).
  • Base-Indexed: Kombination aus Basis- und Indexregister.
  • Strukturen: Syntax: Variable.Feld.

Operatoren und Ausdrücke

Es gibt verschiedene Operatoren: Arithmetische, bitweise, relationale, Index- und Zeiger-Operatoren.

  • OFFSET: Gibt den Offset des Operanden zurück.
  • SHORT: Für Sprünge von weniger als 128 Bytes.
  • LENGTH: Gibt die Anzahl der Elemente zurück.
  • SIZE: Gibt die Größe in Bytes zurück.
  • SEG: Gibt den Segmentwert eines Ausdrucks zurück (z. B. MOV AX, SEG Variable).

Verwandte Einträge: