Untitled59

Untitled59



110 1 1. Programy, podprogramy, segmenty

adresów są takie same jak odpowiednio w rozkazach AJMP i LJMP. Również w większości asemblerów' można podać skrót CALL, a asembler dobierze odpowiedni typ rozkazu.

Tabela 11-3    Rozkazy powrotu z podprogramów

instrukcje:

zapis binarny instrukcji

wykonywane operacje

RET

00100010

PC1S 8 (SP), SP c-SP-1 PC7 0<-(SP), SP«-SP-1

RETI

00110010

PC1S « <- (SP), SP <- SP -1 PC7 0<-(SP), SP<-SP-1

Rozkazy powrotu z podprogramu powodują przepisanie do licznika rozkazów PC adresu przechowywanego na stosie. Dodatkowo rozkaz RETI stosowany w podprogramach obsługi przerwania odblokowuje system przerwań.

W celu ułatwienia programiście operowania danymi, łączenia programów w określonej kolejności w większości narzędzi programowania jest możliw'y podział programu na segmenty. W segmentach następuje przypisanie wybranej grupy zmiennych do określonego typu pamięci - pamięć danych zewnętrzna/} wewnętrzna, pamięć programu. Również wybrane sekwencje rozkazów, najczęściej podprogramy, są przypisywane do segmentów.

Segmenty mogą być relokow'alne lub nierelokowralne. Segmenty nierelo-kowralne są to segmenty umieszczane w obszarze pamięci od adresu zadeklarowanego przez programistę. W trakcie łączenia programów przez linker tego typu segmenty nie mogą być przesuwane do innego obszaru pamięci. Segmenty nierelokowalne są stosowane dla zadeklarowania adresów obsługi przerwań, przy pojedynczych programach, lub gdy program ma być umieszczony od zadanego adresu, np. w niektórych modułach mikroprocesorowych. W powyższym przykładzie w segmencie nierelokowralnym zostały umieszczone rozkazy skoku do programu główmego i podprogramu obsługi przerwania.

Segmenty relokowalne są to segmenty, które po asemblacji otrzymują ad-resy chwilowe, natomiast adresy ostateczne uzyskują po linkowaniu. Mają one bardzo istotne znaczenie, gdyż umożliwiają skorzystanie z wcześniej przygotowanych procedur (programy biblioteczne) dla potrzeb innych programów'. Nprzykład raz napisana procedura mnożenia lub dzielenia wielobajtowego może być dołączana do różnych programów w miejscu wskazanym przez prograiW' stę. W powyższym przykładzie, jeżeli podprogramy inicjalizacji pola LCD, odczytu klawiatury i wysyłania znaku na pole odczytowe będą dołączane do pro-gramu głównego przez linker, to będą one musiały być umieszczone w segmertj tach relokow'alnych.

Do łączenia programów relokowalnych służy linker, w którym zadaje się adres początkowy programu i podaje kolejność rozmieszczenia łączonych programów. Adresy, pod którymi są umieszczone programy, poza początkowym, linker przydziela automatycznie.

Podobnie ma się z rozmieszczeniem danych w pamięci RAM. Po zadeklarowaniu odpowiednich segmentów relokowalnych linker łączy poszczególne segmenty w jedną całość, dzięki czemu programista nie musi kontrolować, czy obszary danych nie nakładają się na siebie, lub nie zostaje niewykorzystana wolna przestrzeń pamięci.

Sposób deklarowania segmentów jest podany w rozdziale 17 opisującym narzędzia programowania.

Pytania i problemy

1.    Co to jest algorytm i do czego służy ?

2.    Jakie są podstawowe elementy algorytmu ?

3.    Ułożyć algorytm dla regulatora temperatury.

4.    Dlaczego programy są podzielone na podprogramy ?

5.    Czym charakteryzuje się podprogram obsługi przerwania ?

6.    Jak mogą być rozmieszczone podprogramy wr pamięci programu procesora ?

7.    Co to są segmenty ?

8.    Czym charakteryzują się segmenty relokowalne ?

9.    Czym charakteryzują się segmenty nierelokowalne ?


Wyszukiwarka

Podobne podstrony:
Untitled59 110 11. Programy, podprogramy, segment) adresów są takie same jak odpowiednio w rozkazach
Untitled56 .    11. Programy, podprogramy, segmenty Wszystkie procesory, a więc i mikro
Untitled58 108 I 1. Programy, podprogramy, segmenty cym podprogram. Podprogramy te zostały umieszczo
skanuj0010 (295) Typy zadań na poziomie rozszerzonym są takie same jak na poziomie podstawowym. Nagr
scan0020 (30) 278 Polityka między narodami kwestię, powody porażki są takie same jak w przypadku por
wartości, jakie może przyjąć atrybut TEXT, są takie same jak w przypadku atrybutu BGCOLOR. Przykłady
Jeśli wszystkie współrzędne elektronu 1 są takie same jak dla elektronu 2, $(l,2,3,4,...,n) = $(1,1,
DSC00084 (25) Własności m

59 (168) 3.3. SPAWALNICZE GAZY OSŁONOWE 59 niają te topniki, są takie same jak zadania spełniane prz
CCF20090319056 65 Całka, oznaczona Inne własności całki oznaczonej są takie same jak całki nieozna
8 (673) 70 ziom. które one reprezentują są takie same jak ostatniego z rozdziałów Zarysu, który star
DSC03355 (3) 148 1*9 ■ujących są takie same Jak w 3-5*9* Uwaga ta dotyczy również rówoollcznośel zbi
międzyobszarowych są takie same jak dla kształcenia realizowanego w ramach jednego obszaru kształcen

więcej podobnych podstron