Relokowalność
PROGRAM
0x0FCD0
?
0x0 |
W CZASIE WYKONYWANIA PROGRAM MOŻE BYĆ ZAŁADOWANY W DOWOLNE MIEJSCE |
0x024 |
PROGRAM
OxOFFF123
?
PROGRAM
Relokowalność = cecha umożliwiająca przemieszczanie programu w pamięci
Ilustracja zagadnienia relokacji programu. 1 2
W asemblerze relokowalnym adresy określone dla poszczególnych bajtów są zmienne. Adresy bezwzględne zostaną określone w późniejszym etapie przetwarzania programu przez loader lub linker (konsolidator).
Wiersz źródłowy |
Załadowany od OOOOH |
Załad2 |
owany c |
>d 0A00H | ||||||||
LJMP |
START |
0000: |
02 |
0A00: |
02 | |||||||
0001: |
01 |
0A01: |
OB | |||||||||
0002: |
00 |
0A02: |
00 | |||||||||
START: CPL LED |
0100: |
B2 |
0B00: |
B2 | ||||||||
0101: |
97 |
0B01: |
97 | |||||||||
MOV A, #10 |
0102: |
74 |
0B02: |
74 | ||||||||
0103: |
0A |
0B03: |
OA | |||||||||
LCALL |
DELAY |
0104: |
12 |
0B04: |
12 | |||||||
0105: |
01 |
0B05: |
OB | |||||||||
0106: |
09 |
0B06: |
09 | |||||||||
SJMP |
START |
0107: |
80 |
0B07: |
80 | |||||||
0108: |
|f7 |
0B08: |
F7 | |||||||||
DELAY:MOV R0,#0FFH |
0109: |
78 |
0B09: |
78 | ||||||||
010A: |
FF |
OBOA: |
FF | |||||||||
LOOP:DJNZ ROJ |
LOOP |
01 OB: |
D8 |
OBOB: |
D8 | |||||||
010C: |
FE |
OBOC: |
FE | |||||||||
DJNZ ACC |
DELAY |
01 OD: |
D5 |
OBOD: |
D5 | |||||||
010E: |
E0 |
OBOE: |
EO | |||||||||
010F: |
F9 |
OBOF: |
F9 | |||||||||
RET |
0110: |
22 |
0B10: |
22 | ||||||||
Relokowalność
Relokowalność posiada szereg korzystnych cech:
• zwiększa efektywność przygotowania programu
• programy mogą być przygotowywane w postaci oddzielnych modułów (np. przez różnych programistów, w tym samym czasie);
• daje możliwość użycia zasobów źródłowych
• do programu można włączyć moduły, które zostały uprzednio przygotowane
umożliwia wieloprogramową pracę systemu komputerowego
• program może być załadowany w dostępne miejsce w pamięci.