Untitled59

Untitled59



110 11. Programy, podprogramy, segment)

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

PC15.8 <- (SP), SP 4- SP -1 PC7 0«-(SP), SP<-SP-1

RETI

00110010

PC15 a 4- (SP), SP 4- SP -1 PC7 0 4- (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żliwy 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 nierelokow'alne. Segmenty nierelo-kow'alne 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 nierelokow'alne 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ą adresy 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'. Na przykład raz napisana procedura mnożenia lub dzielenia wielobajtowego może być dołączana do różnych programów w miejscu wskazanym przez programistę. 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 programu głównego przez linker, to będą one musiał)' być umieszczone w segmentach relokowalnych.

Do łączenia programów rclokowalnych służy linker, w którym zadaje się adres początków 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.

Q 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 w pamięci programu procesora ?

7.    Co to są segmenty ?

8.    Czym charakteryzują się segmenty relokowralne ?

9.    Czym charakteryzują się segmenty nierelokowalne ?


Wyszukiwarka

Podobne podstrony:
Untitled59 110 1 1. Programy, podprogramy, segmenty adresów są takie same jak odpowiednio w rozkazac
Untitled57 106 11. Programy, podprogramy, segmenty pętla Ponieważ od tego momentu użytkownik przyrzą
Untitled56 .    11. Programy, podprogramy, segmenty Wszystkie procesory, a więc i mikro
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