home *** CD-ROM | disk | FTP | other *** search
- ─────────────────────────────────────────────────────────────────────────────
- Dokumentation zur Datei: ADRESSEN.INC
-
- ─────────────────────────────────────────────────────────────────────────────
-
- ADRESSEN.INC - Routinen zur Bearbeitung von (FAR-)Adressen
- (für den Assembler A86)
-
- (c) Bernd Schemmer 1990 - 1992
- Letzter Update: 04.02.1992
-
- ■ Beschreibung:
- ---------------
- Alle Routinen (außer Make20BitValue) normalisieren die Adressen.
- Eine normalisierte Adresse ist gekennzeichnet durch einen
- Offset-Anteil zwischen 00h und 0Fh.
- Die Routinen benutzen das Register AX als Arbeitsregister.
-
-
- ■ Routinen:
- -----------
- NormalisiereES_DI - Normalisiert die Adresse in ES:DI
- NormalisiereDS_SI - Normalisiert die Adresse in DS:SI
- VergleicheAdressen - Vergleicht die Adressen in DS:SI und ES:DI
- AddOffsetToES_DI - Addiert einen Offset auf die Adresse in ES:DI
- AddOffsetToDS_SI - Addiert einen Offset auf die Adresse in DS:SI
- Make20BitValue - Rechnet eine 32-Bit-Adresse in eine 20-Bit-Zahl
- um
- Make32BitValue - Rechnet eine 20-Bit-Zahl in eine 32-Bit-Adresse
- um
-
-
- ----------------------------
- Make32BitAdress
-
- Funktion: Konvertiert eine 20-Bit-Zahl in eine Adresse aus Segment
- und Offset
-
- Eingabe: DX:AX = 20-Bit-Zahl (Aufbau: 000n:nnnn)
-
- Ausgabe: DX:AX = 32-Bit-Adresse (Aufbau: ssss:000o)
-
- ----------------------------
- Make20BitValue
-
- Funktion: Konvertiert eine Adresse aus Segment und Offset in
- eine 20-Bit-Zahl
-
- Eingabe: DX:AX = Adresse (ssss:oooo)
-
- Ausgabe: DX:AX = 20-Bit-Zahl (000n:nnnn)
-
- ----------------------------
- NormalisiereDS_SI
-
- Funktion: Normalisiert die Adresse in den Registern DS:SI
-
- Eingabe: DS:SI = Adresse
-
- Ausgabe: DS:SI = normalisierte Adresse
- AX = neues Segment
- (keine Fehlerüberprüfung)
-
- ----------------------------
- NormalisiereES_DI
-
- Funktion: Normalisiert die Adresse in den Registern ES:DI
-
- Eingabe: ES:DI = Adresse
-
- Ausgabe: ES:DI = normalisierte Adresse
- AX = neues Segment
- (keine Fehlerüberprüfung)
-
- ----------------------------
- VergleicheAdressen
-
- Funktion: Vergleicht die Adressen in den Registern DS:SI und ES:DI
-
- Eingabe: DS:SI = erste Adresse
- ES:DI = zweite Adresse
-
- Ausgabe: DS:SI und ES:DI werden normalisiert
- Flags wie sie nach dem Vergleich CMP DS:SI,ES:DI wären
- (keine Fehlerüberprüfung)
-
- ----------------------------
- AddOffsetToDS_SI
-
- Funktion: Addiert den Wert aus BX auf die Adresse in DS:SI
-
- Eingabe: DS:SI = Adresse
- BX = zu addierender Offset
-
- Ausgabe: CF = 0 ->> okay
- DS:SI = neue Adresse (normalisiert)
- CF = 1 ->> Fehler
- DS:SI unverändert
-
- ----------------------------
- AddOffsetToES_DI
-
- Funktion: Addiert den Wert aus BX auf die Adresse in ES:DI
-
- Eingabe: ES:DI = Adresse
- BX = zu addierender Offset
-
- Ausgabe: CF = 0 ->> okay
- ES:DI = neue Adresse (normalisiert)
- CF = 1 ->> Fehler
- ES:DI unverändert
-
-