3012
edycji
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 91: | Linia 91: | ||
Symbolem jest ciąg znaków zaczynający się od małej lub dużej litery, z następującą dowolną ilością małych lub dużych liter, liczb lub znaku podkreślenia. | Symbolem jest ciąg znaków zaczynający się od małej lub dużej litery, z następującą dowolną ilością małych lub dużych liter, liczb lub znaku podkreślenia. | ||
Symbolowi przypisywana jest wartość | Symbolowi przypisywana jest w trakcie asemblacji wartość oraz atrybuty. Symbol może być: | ||
* niezdefiniowany - wystąpiła deklaracja symbolu, ale nie został on (jeszcze) zdefiniowany, | * niezdefiniowany - wystąpiła deklaracja symbolu, ale nie został on (jeszcze) zdefiniowany, | ||
* lokalny lub globalny - widoczny tylko w granicach obiektu, w którym występuje, bądź również poza nim, | * lokalny lub globalny - widoczny tylko w granicach obiektu, w którym występuje, bądź również poza nim, | ||
* zmienny lub stały - wartość symbolu może, bądź nie może ulec zmianie w trakcie asemblacji programu. | * zmienny lub stały - wartość symbolu może, bądź nie może ulec zmianie w trakcie asemblacji programu. | ||
Linia 102: | Linia 101: | ||
=== Zmienne assemblera === | === Zmienne assemblera === | ||
Zmienne assemblera nie mają swojej reprezentacji w wynikowym obiekcie, są wartościami dostępnymi w trakcie asemblacji programu, a definiuje się je dyrektywą '''.equ'''. Symbol, który jest zmienną assemblera jest zawsze | Zmienne assemblera nie mają swojej reprezentacji w wynikowym obiekcie, są wartościami dostępnymi w trakcie asemblacji programu, a definiuje się je dyrektywą '''.equ'''. Symbol, który jest zmienną assemblera jest zawsze zmienny. Przykłady zmiennych: | ||
.equ a 10 | .equ a 10 | ||
Linia 109: | Linia 108: | ||
=== Stałe assemblera === | === Stałe assemblera === | ||
Stałe assemblera również nie mają swojej reprezentacji w wynikowym obiekcie, są wartościami dostępnymi w trakcie asemblacji programu, a definiuje się je dyrektywą '''.const'''. Symbol, który jest zmienną assemblera jest zawsze | Stałe assemblera również nie mają swojej reprezentacji w wynikowym obiekcie, są wartościami dostępnymi w trakcie asemblacji programu, a definiuje się je dyrektywą '''.const'''. Symbol, który jest zmienną assemblera jest zawsze stały. Przykłady stałych: | ||
.const a 10 | .const a 10 | ||
Linia 116: | Linia 115: | ||
=== Etykiety === | === Etykiety === | ||
Etykieta | Etykieta opisuje pozycję względem początku obiektu (jest nią wartość licznika rozkazów w danym momencie asemblacji). Przykład definicji etykiety: | ||
etykieta: | etykieta: | ||
Linia 122: | Linia 121: | ||
=== Zasięg symboli === | === Zasięg symboli === | ||
Wszystkie symbole definiowane są jako lokalne. Jeśli symbol ma być widoczny dla konsolidatora, należy go zadeklarować jako globalny dyrektywą '''.global'''. | Wszystkie symbole definiowane są jako lokalne. Jeśli symbol ma być widoczny dla konsolidatora, należy go zadeklarować jako globalny dyrektywą '''.global'''. Zmiana zasięgu może nastąpić przed, lub po definicji: | ||
.global printf | .global printf | ||
Linia 136: | Linia 135: | ||
procedura: | procedura: | ||
.global procedura | .global procedura | ||
== Wyrażenia == | == Wyrażenia == |