Die Subroutine in der Assemblersprache kann mit dem Be
triebssystem oder mit der POKE-Anweisung in den Speicher ge
laden
werden.
Wird
paket benutzt, so können die Routinen mit dem M ACRO Assem
bler (M S-M ACRO) assembliert und mit Link Lead (M S-LIN K ) ge
bunden (jedoch nicht geladen) werden. Beim Laden der Programm
datei müssen folgende Richtlinien beachtet werden:
1. Die Subroutinen dürfen keine langen Referenzen enthalten.
2. Die ersten 512 Bytes der M S-LINK Ausgabedatei müssen
übersprungen werden. Danach wird der Rest der Datei ein
gelesen.
CALL-ANWEISUNG
Die C A LL-A n Weisung wird als Verbindung zwischen 8086 Pro
grammen in der Maschinensprache und MS-BASIC empfohlen.
Die USR-Funktion sollte nur benutzt werden, wenn vorher ge
schriebene Programme ausgeführt werden, die schon USR-Funk-
tionen enthalten. (Für eine Beschreibung der Funktion wird auf
" USR-Funktion" in diesem Kapitel verwiesen.)
Syntax
C A L L <Variablenname> [(<Param eterliste)>]
Wobei <Variablenname> die Segmentposition ent
hält, die dem Anfangspunkt der aufgerufenen Sub-
outine im Speicher entspricht.
<Parameterliste>
voneinander getrennten Variablen oder Konstan
ten, die an die Routine übergeben werden müssen.
Beim Aufruf der CALL-Anweisung kommt es zu folgenden Er
eignissen:
1. Für jeden Parameter in der Parameterliste wird der aus 2
Bytes bestehende Offset der Parameteradresse innerhalb
des Datensegments (DS) in den Stapel bewegt.
2. Das Codesegment (CS) für die Rücksprungadresse von MS-
BASIC und das Offset (IP ) werden in den Stapel bewegt.
3. Die Steuerung wird über einen 8086 C A L L FAR-Befehl
zu der in der letzten DEF SEG-Anweisung angegebenen
Segmentadresse und zu dem in <Variablenname> angege
benen Offset an die Benutzerroutine übertragen.
5-2
das Microsoft-Dienstprogramm-Software-
enthält die durch Kommas (,)