Wykorzystanie procedur. Współużywalność procedur Współbieżność procesów Wymiana informacji z procedurami Procedury 2/21.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Programowanie w PMC.
Wzorce.
Prowadzący: mgr inż. Elżbieta Majka
Wykonał : Marcin Sparniuk
Programowanie I Rekurencja.
PROGRAMOWANIE STRUKTURALNE
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Mapa pamięci mikrokontrolera
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Podstawowe składniki funkcjonalne procesora i ich rola.
Alokacja pamięci struct Test {char c; int n; double x; } st1; st1 cnxcnx
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Tablice.
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Magistrala & mostki PN/PD
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Procesory RISC.
Wstęp do interpretacji algorytmów
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Mikroprocesory i mikrokontrolery
Układy wejścia-wyjścia
ogólne pojęcia struktury
Podstawy programowania II
Urządzenia zewnętrzne
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
MCS51 - wykład 2.
Mikroprocesor Z80 lista rozkazów
Mikroprocesor Z80 przerwania.
ogólne pojęcia struktury
Podstawy układów logicznych
MCS51 - wykład 6.
Architektura systemów komputerowych jesień 2013
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
Wielozadaniowowść systemu operacyjnego Linux
Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie
Sekwencyjne bloki funkcjonalne
Systemy operacyjne.
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Złożone typy danych Listy Tworzenie elastycznych baz danych
Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie do akumulatora.
Przerwanie ang. interrupt.
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Architektura PC.
Podstawy informatyki 2013/2014

ZAPIS BLOKOWY ALGORYTMÓW
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
Algorytmika Iteracje autor: Tadeusz Lachawiec.
Przerzutniki bistabilne
Procesor, pamięć, przerwania, WE/WY, …
Architektury procesorów rdzeniowych mikrokontrolerów.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Wstęp do interpretacji algorytmów
Tryby adresowania i formaty rozkazów mikroprocesora
Mikrokontrolery System przerwań
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Wykorzystanie procedur

Współużywalność procedur Współbieżność procesów Wymiana informacji z procedurami Procedury 2/21

Procedury - współużywalność 3/21 współużywalność procedury - polega na tym, że przerwanie wykonywania procedury i powtórne jej wywołanie z innego miejsca programu (np. z wnętrza procedury obsługi przerwania) nie zaburza pracy żadnego z programów wywołujących. Podstawowe warunki współużywalności to: - niestosowanie samomodyfikacji kodu programu/procedury; - stosowanie dynamicznego przydziału RAM na zmienne robocze (np. na stosie), zamiast stałych obszarów roboczych oraz stałych obszarów na parametry i wyniki.

Procedury - współużywalność 4/21 Ilustracja współużywalności w systemie jednozadaniowym … ld A,B add A,D … ret AR1: (proc. arytm.)... ld B,14 ld D,17 call AR1 ld (wyn2),A... reti INTSRV: (proc. obsługi przerwania) … ld B,4 ld D,7 call AR1 ld (wyn1),A … program główny ! Procedura AR1 wykorzystuje/zmienia rejestry: A, F ! Procedura INTSRV wykorzystuje/zmienia rejestry: B, D, A, F

Procedury - współużywalność 5/21 Ilustracja współużywalności w systemie wielozadaniowym … ld A,B add A,D … ret AR1: (proc. arytm.) program #2... ld B,4 ld D,7 program #1... ld B,10 call AR1 ld (wyn1),A... ld D,11 call AR1 ld (wyn2),A

Procedury - współużywalność 6/21 Przykład dynamicznego przydziału RAM na stosie dla zmiennych roboczych procedury: procX:PUSHIX; składowanie na stosie rejestrów ; w tym także IX LDIX,-wor; wor=wielkość obszaru roboczego w bajtach ADDIX,SP LDSP,IX; zarezerwowanie obszaru roboczego na stosie ; treść procedury, ; dostęp do elementów obszaru roboczego ; np. adresowaniem indeksowym (IX+dd) LDIX,wor; zwolnienie obszaru roboczego ADDIX,SP; ze stosu pod koniec procedury LDSP,IX POPIX; odtworzenie IX i innych rejestrów RET

Procedury - współbieżność procesów 7/21 Współbieżność procesów/programów polega na tym, że mikroprocesor realizuje jednocześnie 2 lub więcej programów - oczywiście z tzw. podziałem czasu (przełączanie dostępu do procesora poszczególnych programów regulowane timerem - procesy równorzędne, albo przerwaniami od asynchronicznych zdarzeń zewnętrznych - program tła i procedury obsługi przerwań). Aby te zadania były realizowane poprawnie muszą być spełnione warunki: - rozdzielenie obszarów danych i kodu poszczególnych programów; - stosowanie procedur współużywalnych.

Procedury 8/21 Procedury są zwykle wywoływane w celu określonej obróbki informacji. Procedury z reguły wymagają danych do swej pracy czyli parametrów i generują tzw. wyniki. Sposób wymiany informacji pomiędzy programem wywołującym a procedurą, tzn.: a) przekazanie procedurze parametrów; b) odebranie od niej wyników; jest uzależniony od szeregu czynników: liczby dostępnych aktualnie rejestrów P; dostępnego obszaru PAO; wymaganej szybkości działania; typu pamięci programu i danych (ROM czy RAM); uniwersalności i prostoty wymiany danych; wpływu na współużywalność procedury wołającej i wywoływanej.

Procedury 9/21 1. Przekazywanie parametrów/wyników przez rejestry Szybki sposób przekazywania niewielkiej ilości danych. ; procedura generująca programowo zadane opóźnienie ; parametry: B - czas opóźnienia delay:EX(SP),HL;2-krotna zamiana HL[19] EX(SP),HL;z wierzchołkiem stosu[19] DJNZ delay;dekrement licznika powtórzeń[13/8] RET;[10] ; przykład wywołania: LDB,k; [7] CALLdelay; [17] (RST delay ;[11]) czas trwania opóźnienia (łącznie z wywołaniem) [w taktach CLK]: N=(7+17)+(19+19)k+13(k-1)+8+10=51k+29 fosc=2.5MHzk=1N=80 T=32 s t=400nsk=0N=13138 T=5.25ms

Procedury 10/21 2. Przekazywanie parametrów/wyników przez rejestry pośrednio Wykorzystuje się mechanizmy adresowania za pośrednictwem rejestrów procesora. Metoda pozwala przekazywać procedurze / odbierać od niej wskazania do obszarów danych o dowolnej wielkości. Zwykle stosowana do przekazywania wskaźników do struktur tablicowych, rekordowych. ; przykład wywołania: LDDE,tabliczb;wskazanie na adr. pocz. tablicy LDHL,sumael;wskazanie na słowo wyniku LDB,iloscel CALLsumy

Procedury 11/21 ; procedura sumująca 1-bajtowe elementy tablicy ; parametry: B - liczba elementów do zsumowania; ; DE - początek tablicy; ; HL - adres 2-bajtowego wyniku operacji. ; zmiany: DE:=DE+B, B:=0. sumy:PUSHAF;przechowanie AF na stosie XORA LD(HL),A;zerowanie bajtów wyniku INCHL LD(HL),A DECHL sumy1: LDA,(DE);A:=element tablicy ADDA,(HL);dodawanie 2-bajtowe LD(HL),A INCHL LDA,(HL) ADCA,0 LD(HL),A DECHL INCDE; następny element tablicy DJNZsumy1; dekrement licznika B POPAF; odtworzenie AF ze stosu RET

Procedury 12/21 3. Przekazywanie parametrów/wyników przez wspólny, stały obszar w RAM Sposób umożliwiający przekazywanie dużych ilości danych. Związany jest z koniecznością dodatkowego przesyłu informacji do stałego obszaru przed wywołaniem procedury i/lub z tego obszaru po wyjściu z procedury. Wpływa negatywnie na współużywalność procedury. ; przykład wywołania: LDBC,4; inicjacja obszarów wspólnych LDHL,liczba1 LDDE,l1 LDIR LDBC,4 LDHL,liczba2 LDDE,l2 LDIR CALLdod4b LDHL,(lw); skopiowanie wyniku z obszaru LD(suma),HL; wspólnego do zmiennej roboczej LDHL,(lw+2) LD(suma+2),HL

Procedury 13/21 ; procedura realizująca dodawanie liczb 4-bajtowych ; parametry: l1,l2 - 4-bajtowe obszary ze składnikami; ; wyniki: lw - 4-bajtowa suma dod4b:EXAF,AF; wybór alternatywnego AF PUSHBC; składowanie BC na stosie PUSHIX; składowanie IX na stosie LDB,4; licznik bajtów LDIX,l1; IX->obszar wspólny XORA; CY:=0 dodb:LDA,(IX); A:=bajt z l1 ADCA,(IX+l2-l1); dodanie bajtu z l2 LD(IX+lw-l1),A; bajt sumy do lw INCIX; następne bajty DJNZdodb POPIX; odtworzenie rejestrów POPBC EXAF,AF' RET

Procedury 14/21 Stały obszar w asemblerze może być definiowany na różne sposoby: ORG9000h l1:DEFS4 l2:DEFS4 lw:DEFS4 albo: l1:EQU9000h l2:EQU9004h l3:EQU9008h

Procedury 15/21 program wpis call odczyt proc. np. arytm. dane Stały obszar a współużywalność procedury wariant bezpieczny obsługa przerw. program wpis call odczyt proc. np. arytm. dane wariant krytyczny

Procedury 16/21 4. Przekazywanie parametrów przez listę w treści programu Wykorzystuje się mechanizmy dostępu do stosu. Metoda stosowana do przekazywania parametrów, których wartość jest już znana na etapie asemblacji (np. maks. liczba iteracji, liczba wykonania pętli opóźniającej). Zwykle stosowana do przekazywania wskaźników do struktur tablicowych, rekordowych. ; przykład wywołania: CALLdelayk; [17] DEFBk

Procedury 17/21 ; procedura realizująca opóźnienie ; parametry: k - krotność powtórzenia pętli, podana za kodem ; rozkazu wywołania ; zmiany: rej.F, B:=0 delayk:EX(SP),HL; [19] HL:=adres powrotu LDB,(HL); [7] B:=krotność k INCHL; [6] inkrement adresu powrotu EX(SP),HL; [19] nowy adres powrotu na stos delay:EX(SP),HL; [19] rozkazy dające EX(SP),HL; [19] opóźnienie DJNZdelay; [13/8] dekrement licznika powtórzeń RET; [10] czas trwania opóźnienia [w taktach CLK] (łącznie z wywołaniem): N=51k+73

Procedury 18/21 5. Przekazywanie parametrów / wyników przez stos Wykorzystuje się mechanizmy dostępu do stosu. Dobra metoda, zapewniająca dynamiczny przydział pamięci dla zmiennych, ale wymaga nieco uwagi przy programowaniu, ponieważ ingeruje w strukturę stosu. Zwykle stosowana przez kompilatory do przekazywania parametrów do procedur i tworzenia dla nich dynamicznych obszarów roboczych. ; przykład wywołania: LDHL,(...); zapis k liczb PUSHHL; na stos LDHL,k PUSHHL; k na stos CALLsumujkliczb INCSP; k INCSP; razy POPHL; HL:=suma

Procedury 19/21 ; procedura sumująca k liczb 2-bajtowych ; parametry: liczby i licznik k - na stosie ; wynik: suma - na stosie, zamiast pierwszej z sumowanych liczb sumujkliczb:PUSHHL PUSHBC; składowanie rejestrów na stosie PUSHDE PUSHAF LDHL,10 ADDHL,SP; IX->k na stosie LDB,(HL); B - licznik liczb INCHL EXDE,HL LDHL,0; wyzerowanie sumy S sumujliczbe:INCDE; DE->liczba na stosie LDA,(DE); A:=młodszy bajt ADDA,L LDL,A INCDE LDA,(DE); A:=starszy bajt ADCA,H LDH,A DJNZsumujliczbe; dekrement licznika powtórzeń

Procedury 20/21 LD(DE),A; zapisanie sumy S na stosie DECDE; w miejscu pierwszej z liczb LDA,L LD(DE),A; zapis młodszego bajtu POPAF; odtworzenie rejestrów POPDE POPBC POPHL RET

Procedury 21/21