Untitled94

Untitled94



180 17 Narzędzia programowania

17.6. Linker

Linker wykonuje następujące operacje:

•łączy wielu modułów w jeden moduł,

•łączy relokowalne segmenty o tej samej nazwie w jeden segment,

•optymalizuje obszary pamięci przydzielane dla poszczególnych segmentów,

•łączy wywołania podprogramów zaznaczone jako EXTRN w jednym module z podprogramami o tej samej nazwie oznaczonymi jako PUBLIC w innym module,

•ustala adresy absolutne dla segmentów relokowalnych,

•tworzy zbiór wyjściowy zawierający cały program,

•tworzy zbiór zawierający informacje o procedurach wykonanych przez linker oraz zawierający tablicę użytych symboli i nazw związanych z poleceniami PUBLIC i EXTRN,

•wykrywa błędy występujące w trakcie łączenia programów.

Zbiory wejściowe są przetwarzane przez linker w kolejności podanej w linii wywołującej linker. Jeżeli są dołączane zbiory biblioteczne, to będą z nich wybrane tylko moduły, których nazwy związane z poleceniem PUBLIC będą odpowiadały nazwom związanym z poleceniem EXTRN zbiorów wejściowych.

Wywołanie linkera odbywa się przez podanie jego nazwy, listy nazw wraz z rozszerzeniami zbiorów wejściowych w kolejności w jakiej mają być łączone poszczególne moduł)', opcjonalnie nazwy zbioru wyjściowego oraz opcjonalnie listy komend sterujących pracą linkera:

L51 list_zb_wej [TO zb_wyj] [komendy]

Przy dużej liczbie zbiorów wejściowych linia wywołania linkera może przekroczyć 128 znaków dopuszczalnych dla poleceń DOS-a. Należy ją w takim przypadku podzielić stawiając w miejscu podziału znak & i naciskając klawisz ENTER. Linker wyświetli w nowej linii znak >> od którego można wprowadzać dalszy ciąg linii wywołania. Znak & może być umieszczony tylko pomiędzy komendami lub parametrami, natomiast nie może być wstawiony w środku komendy lub parametru. Przy długiej linii wywołania linkera wygodniej jest użyć zbioru sterującego pracą linkera. Wywołanie linkera w tym przypadku jest następujące:

L51 @nazwa_zb

gdzie: nazwa_zb jest nazwą zbioru sterującego.

Lista zbiorów wejściowych zawiera nazwy zbiorów, wraz z rozszerzeniami (.obj lub .lib), zawierające moduły, które mają być łączone przez linker oraz nazwy modułów, podane w nawiasach, które znajdują się w zbiorze bibliotecznym. Jeżeli ze zbiorów bibliotecznych są wybierane elementy programów wskazywane przez polecenia PUBLIC i EXTRN, to nazwy modułów są pomijane. Poszczególne elementy listy są oddzielone przecinkiem. Sposób podawania listy zbiorów wejściowych ilustrują poniższe przykłady:

L51 TEST.OBJ, A_COBJ, MAT. LIB

W powyższym przykładzie będą łączone moduły zawarte w zbiorach TEST.OBJ i A_C.OBJ oraz elementy ze zbioru bibliotecznego MAT.LIB wybrane poleceniem EXTRN, których nazwy odpowiadają nazwom powiązanym z poleceniem PUBLIC. W wywołaniu

L51 A_C.OBJ, IO.LIB (LCD, KLAW)

zostaną połączone moduły ze zbioru A_C.OBJ i moduły LCD i KLAW ze zbioru bibliotecznego I_O.LIB.

W obu powyższych przykładach nazwa zbioru wyjściowego będzie nazwą pierwszego zbioru wejściowego bez rozszerzenia. Jeżeli nazwa zbioru wyjściowego ma być zmieniona to należy to zadeklarować w linii wywołania linkera w sposób następujący:

L51 AC.OBJ, I O.LIB (LCD, KLAW) TO STER.ABS

Zbiór wyjściowy będzie miał nazwę STER z rozszerzeniem ABS.

Oprócz zbioru wyjściowego zawierającego program, linker generuje zbiór z rozszerzeniem .m51, w którym jest podany sposób wywołania linkera, nazwy łączonych modułów oraz nazwy, typy i rozmieszczenie segmentów. Zbiór wyjściowy z linkera może być testowany i sprawdzany narzędziami DSCOPE51.

Jeżeli zbiór z programem ma być zapisany w standardzie INTEL-HEX, to należy użyć konwertera OH51 wywołując go wraz ze zbiorem otrzymanym po linkerze. Wynikiem przetwarzania będzie zbiór z nazwą zbioru wejściowego z rozszerzeniem .hex.


Wyszukiwarka

Podobne podstrony:
Untitled94 180 17. Narzędzia programowania17.6. Linker Linker wykonuje następujące operacje: •łączy
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,
Untitled91 174 17. Narzędzia programowania gdzie: NOLIST - dyrektywa asemblera wskazująca, że wszyst
Untitled93 178 17. Narzędzia programowania Polecenie XDATA przypisuje wartość wyrażenie , którą jes
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
Inżynierskie Bazy Danych - sprawdzian 2 KRA3 NAZWA KRAJ SKRÓT wykonujące następujące operacje: 1. Ba
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