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