Herunterladen Inhalt Inhalt Diese Seite drucken

NCR DECISION MATE V Bedienungsanleitung Seite 305

Inhaltsverzeichnis

Werbung

GW-BASIC
6. Zeichenfolgen können von Benutzerroutinen geändert wer­
den, die Länge darf jedoch nicht geändert werden. MS-
BASIC kann Zeichenfolgen nicht richtig verarbeiten, wenn
deren Länge durch externe Routinen geändert wird.
Beispiel für eine CALL-Anweisung:
100 DEF SEG = &H8000
110 F 0 0 = & H 7 F A
120 C A L L F 0 0 (A ,B £ ,C )
In Zeile 100 wird das Segment auf H8000 gesetzt. Der Wert der
Variablen F00 wird als unterstes Wort zu der Adresse hinzugefügt,
nachdem der DEF SEG-Wert um 8 Bits nach links geschoben wur­
de. (Hier handelt es sich um eine Funktion des Mikroprozessors
und nicht um eine Funktion von MS-BASIC). Hier wird F00 auf
& H 7 F A gesetzt, so daß durch Au fruf von F00 die Subroutine in
der Adresse 8000:7 F A Hex (absolute Adresse 807FA Hex) aus­
geführt wird.
Die folgende Routine in der 8086 Assemblersprache zeigt den
Zugriff zu den übergebenen Parameters. Das Rückgabeergebnis
wird in der Variablen " C " gespeichert.
MOV
BP, SP
B X ,6 [B P ]
M OV
M OV
CL,[BS]
DX, 1[BX]
M O V
M OV
SI, 8[BP]
M OV
D I,4[B P]
M OV
WORD
R ET
6
HINWEIS: Das aufgerufene Programm muß den Variablentyp für
die übergebenen numerischen Parameter kennen. In dem vor­
hergehenden Beispiel kopiert der Befehl
MOVS WORD
nur zwei Bytes. Dies ist in Ordnung, wenn es sich bei den
Variablen A und C um Ganzzahlen handelt. Es müssen jedoch
; Aktuelle Stapelposition in BP ermitteln.
; Adresse von B$ ermitteln.
; Länge von B$ in CL ermitteln.
; Adresse des B$ Textes in DX ermitteln.
; Adresse von ' A ' in SI ermitteln.
; Zeiger zu ' C' in DI ermitteln.
; Variable 'A ' in ' C' speichern.
; Stapel wieder herstellen, Rücksprung.
MS-DOS ERW EITE R U N G
5-5

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis