Nächste Seite: Absolute Variablen Aufwärts: Variablen Vorherige Seite: Register-Variablen und -Parameter

###
Globale Variablen

Bei den globalen Variablen wird zwischen zwei verschiedenen Arten unterschieden: - und -Variablen. Wird die dafür verantwortliche Option ,,`LargeVars``` nicht explizit auf `FALSE` gesetzt, werden standardmässig alle global deklarierten, ,,normalen`` (siehe obige Aufstellung) Variablen als -Variablen angelegt, andernfalls als -Variablen.

Wer auf die Residentfähigkeit seiner Programme nicht verzichten, Teile in Assembler programmieren oder ,,fremde`` (C, Assembler) Teile zum Programm hinzulinken möchte, sollte folgende Ausführungen beachten:

-Variablen
  werden absolut lang adressiert. Sie unterliegen keinerlei Einschränkungen, erzeugen jedoch längeren und langsameren Code. Sobald aber auch nur ein einziges Modul eines Programmes -Variablen benutzt, ist dieses Programm nicht mehr residentfähig!

-Variablen
  sind ,,schneller`` und ,,kürzer``, sparen also Laufzeit und Code, weil sie immer mit einem 16Bit-Offset relativ zum Basisregister A4 adressiert werden. Hierdurch ergeben sich zwei Einschränkungen:
  1. Ein Modul darf maximal 32KByte mit -Variablen belegen. Überschreitungen meldet der Compiler als Fehler.
  2. Ein Programm darf maximal 64KByte -Variablen besitzen. Die Einhaltung kann erst der Linker überprüfen und als Fehler melden.

Der Typ der globalen Variablen ist jeweils pro Compilationseinheit (Modul) festgelegt. Dies bestimmt die Compiler-Option . Hierbei ist unbedingt darauf zu achten, dass Definitions- und Implementationsmodule mit derselben Option übersetzt werden, sofern in den Definitionsmodulen ,,normale`` (also keine absoluten oder externe) Variablen deklariert werden. Andernfalls erfolgt eine Fehlermeldung.

Standardmässig werden -Variablen erzeugt, um die Anzahl globaler Variablen (bzw. die Grösse des von ihnen belegten Speichers) nicht von vornherein einzuschränken. Man sollte jedoch möglichst immer die Option ,,`LargeVars:=FALSE``` bzw. ,,`-y``` einsetzen, um kompakten und schnellen Code zu erzeugen. Alle zum -System gehörigen Standard-Moduln -- Profiler-Modul ausgenommen -- enthalten möglichst wenige globale Variablen und sind im -Modell kompiliert.

Nächste Seite: Absolute Variablen Aufwärts: Variablen Vorherige Seite: Register-Variablen und -Parameter