3012
edycji
Nie podano opisu zmian |
|||
Linia 100: | Linia 100: | ||
Symbol otrzymuje atrybuty zgodne z tym w jakim kontekście został zdefiniowany bądź zadeklarowany. | Symbol otrzymuje atrybuty zgodne z tym w jakim kontekście został zdefiniowany bądź zadeklarowany. | ||
== Zmienne == | === 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 bezwzględny i zmienny. Przykłady zmiennych: | |||
.equ a 10 | |||
.equ b a+2 | |||
=== 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 bezwzględny i stały. Przykłady stałych: | |||
.const a 10 | |||
.const b a+9 | |||
=== Etykiety === | |||
Etykieta jest zawsze stałym symbolem względnym i zawiera pozycję względem początku obiektu, czyli wartość licznika rozkazów w danym momencie asemblacji. Przykład definicji etykiety: | |||
etykieta: | |||
=== 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'''. Globalne mogą być wyłącznie symbole względne (etykiety), a zmiana zasięgu może nastąpić przed, lub po definicji: | |||
.global start | |||
start: | |||
procedura: | |||
.global procedura | |||
== Wyrażenia == | == Wyrażenia == |