Untitled91

Untitled91



174 17. Narzędzia programowania

gdzie: NOLIST - dyrektywa asemblera wskazująca, że wszystkie elementy występujące po niej nie będą dołączone do zbioru z rozszerzeniem .lst.

LIST - dyrektywa asemblera wskazująca że wszystkie elementy występujące po niej będą dołączone do zbioru z rozszerzeniem .lst.

Poleceniem INCLUDE można do zbioru źródłowego dołączać również inne zbiory, zawierające na przykład fragmenty programów.

17.3. Deklaracje segmentów

Elementy programu mogą być podzielone na segmenty związane z obszarem pamięci, w którym mają być umieszczone. Segmenty mogą być absolutne lub relokowalne. Segmenty relokowalne są to segmenty, których adresy są ustalane na etapie łączenia programów przez linker.

Segmenty absolutne są to segmenty, których adresy są ustalone przez programistę na poziomie asemblera. Można je zadeklarować w dwojaki sposób. Pierwszy sposób polega na podaniu typu segmentu z opcją AT i adresem od którego segment się rozpoczyna:

• CSF.G AT adresabsolutny    ;segment w obszarze pamięci programu

• DSEG AT adres absolutny    ;segment w obszarze wewnętrznej pa

mięci RAM adresowanej bezpośrednio.

•    ISEG AT adres_absolutny ;segment w obszarze wewnętrznej pa

mięci RAM adresowanej pośrednio.

•    XSEG AT adres absolutny ;segment w obszarze zewnętrznej pa

mięci RAM

•    BSEG AT adres_absolutny ;segment w obszarze pamięci adresowa

nej bitowo.

Opcja AT kończy rezerwację pola poprzednich obszarów absolutnych pamięci i rozpoczyna nowy obszar z bazą wskazaną 'adres absolutny'. Taka postać przywołania segmentu absolutnego umożliwia pozostawienie pamięci dla segmentów relokowalnych poniżej wskazanego adresu. Na przykład:

CSEG AT lOOh ;w obszarze od 0 do lOOh można umieścić

;segmenty relokowalne ..................... ; program

Program zostanie umieszczony od adresu 100 szesnastkowo.

Drugi sposób polega na podaniu typu segmentu i polecenia ORG wraz z adresem określającym początek segmentu. Przy takim zdefiniowaniu segmentu absolutnego, poniżej adresu wskazanego poleceniem ORG nie można umieszczać segmentów relokowalnych. Na przykład:

CSEC

ORG lOOh    ;w obszarze od 0 do lOOh nie można umieścić

;modułów relokowalnych

..................... ;program

W tym przypadku program zostanie również umieszczony od adresu 100

szesnastkowo.

Należy pamiętać, że w przypadku składania segmentów absolutnych sprawdzanie, czy obszary pamięci składanych segmentów nie nachodzą na siebie należy w zasadzie do programisty. Tylko niektóre linkery zgłaszają błąd nakładania się na siebie programów.

W celu umożliwienia łączenia fragmentów programu i optymalizacji zagospodarowania obszarami pamięci moduły programów w zbiorach źródłowych przetwarzanych przez asembler należy podzielić na segmenty relokowalne. Każdy segment jest określony nazwą i deklaracją typu segmentu. Do deklaracji segmentu relokowalnego stosuje się polecenie SEGMENT, na przykład:

Nazwasegmentu SEGMENT typsegmentu

Nazwa segmentu, jeżeli jest związana z tym samym typem segmentu, może powtarzać się w innych modułach łączonych przez linker w jeden wspólny program. Typy segmentów są zdefiniowane w następujący sposób:

•    CODĘ - segment umieszczony w pamięci programu

•    DATA - segment umieszczony w wewnętrznej pamięci danych adreso

wanej bezpośrednio

•    IDATA - segment umieszczony w wewnętrznej pamięci danych adreso

wanej pośrednio

•    XDATA - segment umieszczony w zewnętrznej pamięci danych

•    BIT - segment umieszczony w wewnętrznej pamięci danych adreso

wanej bitowo

Polecenie SEGMENT jest tylko deklaracją, że w module występuje segment o podanej nazwie i typie, natomiast właściwy segment relokowalny rozpoczyna się od polecenia RSEG:

RSEG Nazwa_segmentu

Linker łączy segmenty w takiej kolejności w jakiej występują polecenia SEGMENT.


Wyszukiwarka

Podobne podstrony:
Untitled89 170 17. Narzędzia programowania programu od dowolnego rozkazu, podglądanie i modyfikacja
Untitled90 172 17. Narzędzia programowania 5.    pozostałe symbole (nazwy segmentów,
Untitled93 178 17. Narzędzia programowania Polecenie XDATA przypisuje wartość wyrażenie , którą jes
Untitled94 180 17 Narzędzia programowania17.6. Linker Linker wykonuje następujące operacje: •łączy w
Untitled95 182 17. Narzędzia programowaniaPytania i problemy 1. Co to jest asembler i makroasembler
Untitled92 176 17. Narzędzia programowania W asemblerze występują polecenia EXTRN i PUBLIC, które um
Untitled94 180 17. Narzędzia programowania17.6. Linker Linker wykonuje następujące operacje: •łączy
Temat Uniwersalne narzędzie programistyczne do kompilacji procedur asemblerowych i testowania
CCF20090214092 staje być on narzędziem, rzeczą taką, jaką napotykamy w życiu codziennym, ze wszystk
Zadanie 17. Narzędzia przygotowywane do sterylizacji są sprawdzane i segregowane bezpośrednio A.
Slajd33 (22) Ochrona wód - sposoby i narzędziaKrajowy Program Oczyszczania Ścieków Komunalnych Krajo
Slajd36 (23) Ochrona wód - sposoby i narzędziaKrajowy Program Oczyszczania Ścieków KomunalnychWyposa

więcej podobnych podstron