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:
- Ein Modul darf maximal 32KByte mit -Variablen belegen.
Überschreitungen meldet der Compiler als Fehler.
- 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
Claudio Nieder
2000-11-12