2.3.2.6. Premenné v BASICu
Premenné, použité v programe, sú uložené ihneď za posledným riadkom programu. Ich začiatok je uložený v systémovej premennej VARS a koniec označený bytom s hodnotou 80h. Priestor pre premenné vyzerá takto:
Začiatok premenných nie je vždy na tom istom mieste. V prípade, že do programu pridáte alebo vypustíte riadok, zmení sa i dĺžka programu a začiatok premenných sa posunie.
Veľkosť tejto oblasti je tiež premenná. Po príkaze RUN sa oblasť vyčistí. Pri vykonávaní programu sa každá nová premenná zaradí do oblasti premenných. Za menom premennej je potom uložená jej aktuálna hodnota a všetky aritmetické a logické operácie sú vykonávané s touto aktuálnou hodnotou.
Pri vykonávaní programu a priradení hodnoty premennej sa postupuje nasledovne:
- v programe sa zistí meno premennej
- vezme sa zo systémovej premennej VARS začiatok oblasti
premenných a od tejto adresy sa hľadá meno premennej
- v prípade, že sa meno v oblasti nachádza, zistí sa z programu
hodnota, ktorá má byt v premennej uložená a uloží sa do nej
- v prípade, že sa premenná v oblasti nenachádza, tak sa pre ňu
vyhradí miesto, zapíše sa naň meno premennej a hodnota, ktorá
sa zistí z programu.
Teraz uvedieme spôsob uloženia mien a hodnôt niektorých typov premenných v oblasti premenných.
Číselná premenná (jednoznaková):
0 |
1 |
1 |
|
|
|
|
|
1.byte |
2.byte |
3.byte |
4.byte |
5.byte |
|
|
|
kód znaku |
|
|
|
|
|
||||
|
|
|
mínus 60h |
|
|
|
|
|
||||
typ
premennej |
hodnota
premennej |
Na miesto označené "kód znaku minus 60h" sa uloží kód znaku (písmena), ktorým je premenná označená, od ktorého sa odčíta hodnota 60h. Napr. pre premennú, označenú písmenom "i" sa na dané miesto uloží: CODE("i") - 60h = 69h - 60h = 09h.
Číselná premenná (viacznaková):
Reťazec:
Číselné pole
(n-rozmerné,
kde n = 1 až 255):
Znakové pole (n-rozmerné, kde n = 1 až 255):
Premenná cyklu FOR .. NEXT:
Byty označené ako "riadok NEXT" a "príkaz
NEXT" určujú umiestnenie príkazu NEXT v programe (teda na ktorom riadku sa
nachádza a aké má poradové číslo v riadku). Pri vykonávaní programu sa potom
pokračuje (po vykonaní cyklu) príkazom nasledujúcim za príkazom NEXT.