MIKRO2, Mikroprocesory AiR sem.V


1. Zastosowanie oraz sposóbkonstrukcji układu typu WATCH DOG współpracującego z wejściem RESET mikroprocesora.

Układ typu WATCH DOG ma na celu zrestartowanie pracy systemu jeśli program się zawiesi. Polega to na tym, że w układzie znajduje się programowalny licznik, który zlicza w kierunku zera. Gdy już zliczy do zera to na wejście RESET mikroprocesora podawane jest "1" i system zaczyna pracę od nowa. W czasie normalnej pracy program co pewien czas odświeża licznik tak aby on się nie wyzerował. Gdy to odświeżenie nie nastąpi w ciągu pewnego czasu to nastąpi restart systemu.Ma to zastosowanie wszędzie tam gdzie ze względu na bezpieczeństwo nie można dopuścić na beztroskie zawieszenie się systemu np. sterowanie światłami drogowymi.

2. Wykorzystanie wejścia READY mikroprocesora do współpracy z wolnymi urządzeniami oraz do realizacji pracy krokowej.

Wejście READY informuje mikroprocesor o gotowości urządzeń i możliwości dalszej pracy. Gdy urządzenie podłączone do magistrali jest wolniejsze od procesora to ustawiając READY na "0" ustawi mikroprocesor w stan oczekiwania WAIT. Linie sterujące i magistrala są w tym stanie podtrzymywane przez mikroprocesor i urządzenie może spokojnie i powoli odczytać stan magistrali. Wyjście z tego stanu odbywa się przez ustawienie "1" na wejściu READY mikroprocesora. Można też to wejście wykorzystać do realizacji pracy krokowej w cyklach rozkazowych lub maszynowych. Należy wtedy po każdym cyklu ( maszynowym lub rozkazowym ) zerować linię READY a po odczytaniu stanu linii na magistrali ustawić tę linię.

3.Oddziaływanie sygnału READY na przebieg realizacji cyklu rozkazowego mikroprocesora 8080

READY = "1" - normalna praca procso.

READY = "0" - stan zatrzymania procesora WAIT.- linie sterujące - podtrzymywane przez mikroprocesor,- magistrala - sprzężona z mikroprocesorem,- sygnały na magistralach - określone przez mikroprocesor,- sposób wyjścia - READY = "1"

4. Oddziaływanie sygnału HOLD na przebieg realizacji cyklu rozkazowego mikroprocesora Intel 8080 oraz sposoby jego wykorzystania.

HOLD = "0" - normalna praca. HOLD = "1" - stan zawieszenia HOLD.- linie sterujące - podtrzymywane, wysoka impedancja wyjść kontrolnych,- magistrala - zawieszona - wysoka impedancja,- sygnały na magistralach - niezależne od mikroprocesora,

- sposób wyjścia - HOLD = "1".

Jednym ze sposobów wykorzystania jest bezpośredni dostęp do magistrali przez inne układy. Jeśli jakiś układ żąda dostępu do magistrali ustawia HOLD na "1" aby mikroprocesor ustawiając swoje linie w stan wysokiej impedancji odłączył się elektrycznie od magistrali.

6. Omów tryby adresowania dostępne w mikroprocesorze Intel 8080.

1) Adresowanie pośrednie

Tryb adresowania, w którym adres argumentu jest umieszczony w określonym rejestrze procesora np. BC lub DE. Ważną cechą tego trybu adresowania jest możliwość łatwej zmiany adresu.

Przykład: STAX B

2) Adresowanie bezpośrednie

Tryb adresowania, w którym adres argumentu jest umieszczony w treści rozkazu w pamięci, bezpośrednio za kodem operacji.Przykład:STA 0030H

3) Adresowanie natychmiastowe Tryb adresowania, w którym adres argumentu jest zawarty w liczniku rozkazów, czyli argument jest umieszczony w pamięci bezpośrednio za kodem operacji. Rozkazy o takim trybie adresowania są nazywane też rozkazami z argumentem bezpośrednim.

Przykład: MVI A,Liczba

4) Adresowanie rejestrowe

Tryb adresowania, w którym adres rejestru jest zawarty w kodzie rozkazu.

Przykład: MOV C,H

7. Omów szczegółowo cykl obsługi przerwania z uwzględnieniem czynności wykonywanych przez mikroprocesor Intel 8080 oraz urządzenie zewnętrzne.

1) Urządzenie zgłasza przerwanie. Na wejściu INT mikroproc. pojawia się "1".

2) Pod koniec cyklu rozkazowego mikroprocesor bada stan linii INT pomnożonej logicznie przez zawartość wewnętrznego przerzutnika odpowiedzialnego za maskowanie przerwań.

3) Jeśli wynikiem jest "0" to procesor zwiększa PC o 1 i wykonuje cykl M1 lub cykl pracy jałowej po HLT.

4) Jeśli wynikiem jest "1" to wykonywane są czynności: 1/ - przerwania zostają zablokowane ( wyzerowanie wewnętrznego przerzutnika ),

2/ - na wyjściu INTA pojawia się "0", urządzenie zewnętrzne powinno podać na szynę danych rozkaz dla mikroprocesora,3/ - procesor pobiera rozkaz z szyny danych i go wykonuje,

4/ - jeśli rozkaz ma więcej niż 1 bajt następuje powrót do punktu 2/.

5) Następuje powrót do normalnej pracy ( punkt 2) ).

8. Porównaj obsługę jednopoziomową i wielopoziomową przerwań. Która z wersji obsługi przerwań została zaimplementowana w mikropr8080

Obsługa jednopoziomowa polega na tym, że po przyjęciu przerwania procesor blokuje przyjmowanie przerwań. Wielopoziomowa obsługa polega na tym, że w systemie znajduje się więcej źródeł przerwań o różnych priorytetach. Przerwanie o wyższym priorytecie jest w stanie przerwać obsługiwane przerwanie które ma niższy priorytet. W mikroprocesorze Intel 8080 została zaimplementowana jednopoziomowa obsługa przerwań.

9. Omów architekturę typowego mikrokomputera zbudowanego z wykorzystaniem mikroprocesora Intel 8080 z uwzględnieniem magistrali systemowej oraz elementów współpracujących z jednostką central

Mikroprocesor Intel 8080 bezpośrednio współpracuje z dwoma układami pomocniczymi. Są nimi zegar 8224 i sterownik systemu 8228. Układ ten tworzy jednostkę centralną. Wejścia i wyjścia tego układu to magistrala danych, magistrala adresowa i magistrala sterująca systemu. Magistrale adresową tworzy 16 linii A0..A15, danych 8 linii D0..D7. Magistrala sterująca to wiele indywidualnych linii. Są nimi sygnały sterujące urządzenia zewnętrzne, pamięć jak i sygnały sterujące mikroprocesor np. INT, RESET, HOLD itp. Wszystkie układy podłączane do magistrali powinny mieć wyjścia trójstanowe. Typowy mikrokomputer powinien być wyposażony w pamięć ROM począwszy od adresu 0000H i pamięć RAM. Ponadto w celu komunikacji z otoczeniem powinno być pewne wejście/wyjście. Może nim być np. konsola ( zestaw klawiatury i monitora ).

10. Porównaj organizację pamięci adresowanej jednolicie z urządzeniami wejścia-wyjścia z pamięcią i urządzeniami we/wy adresowanymi odrębnie.

Adresowanie jednolite jest wtedy gdy urządzenia we/wy są dostępne nie przez porty we/wy ale jako komórki pamięci. Daje to znacznie bardziej elastyczny dostęp do nich gdyż lista rozkazów operujących na danych w pamięci jest znacznie bardziej rozbudowana niż rozkazów komunikujących się z portami we/wy. Jednak poświęcenie fragmentu pamięci na obsługę we/wy znacznie bardziej komplikuje budowę systemu. Przykład :System ma następującą pamięć:

00000H - 04000H ROM

04000H - 04FFFH RAM

...

0F000H - 0FFFFH RAM

Chcielibyśmy adresować jednolicie urządzenia we/wy.W najlepszym przypadku można je dołączyć zamiast jednej z kości RAM np. 0F000H - 0FFFFH. Wiąże się to jednak z utratą aż 4KB pamięci, podczas gdy zwykle wymagania przestrzeni adresowej urządzeń we/wy są znacznie skromniejsze ( kilka, kilkanaście, kilkadziesiąt komórek by wystarczyło ). Takie rozwiązanie jest często stosowane gdy system wyposażony jest w niewielką pamięć i mamy obszary niewykorzystane do których można podłączyć urządzenia we/wy. Przykładem systemu z adresowaniem jednolitym jest Amiga gdzie w pewnym obszarze pamięci znajdują się porty we/wy wszystkich układów wewnętrznych (grafika, muzyka, dyski), złącz szeregowych i równoległych, kontrolek diodowych, joystika, myszy itp. Jednak taka ilość portów wymagała specjalnego scalonego układu sprzęgającego.W systemach z procesorem Intel 8080 stosuje się zwykle adresowanie odrębne. Przestrzeń adresów we/wy jest 8-bitowa co wystarcza do podłączenia 256 portów we/wy. Nie uszczupla to przestrzeni adresowej pamięci i ułatwia budowę systemu. Istnieją jednak procesory które nie potrafią obsługiwać portów we/wy w takim wypadku możliwe jest tylko adresowanie jednolite pamięci i wejścia-wyjścia.

11. Omów konsekwencje nieciągłego wykorzystania przestrzeni adresowej systemu mikroprocesorowego.

W przypadku nieciągłego wykorzystania przestrzeni adresowej w pamięci są "dziury". W tych "dziurach" mikroprocesor będzie widział kopię pewnego obszaru pamięci. Nieciągłe wykorzystanie przestrzeni adresowej ma miejsce wówczas gdy system jest wyposażony w pamięć mniejszą niż jest w stanie zaadresować np. 8KB ROM i 4KB RAM dla Intel 8080 to mniej niż 20% pełnych 64KB jakie jest w stanie obsługiwać. W takim przypadku do zaadresowania pamięci wykorzystuje się wybrane linie adresowe. Do zaadresowania 8KB ROM'u potrzeba 13 bitów adresu ( 0000H - 1FFFH ), dla 4KB RAM'u 12 bitów ( 0000H - 0FFFH ). Do wybrania ROM lub RAM potrzebny jest 1 bit. Razem więc trzeba 14 bitów, więc 2 są niewykorzystane. Wybierając np. linię A14 do wyboru ROM/RAM uzyskuje się ROM = 0000H - 1FFFH,

RAM = 4000H - 4FFFH. Ale należy pamiętać, że linie A15,A13 są niewykorzystane w przypadku ROM, a dla RAM dodatkowo A12. Powoduje to, że mapa pamięci wygląda następująco:

0000 - 1FFF ROM - oryginalny

2000 - 3FFF ROM1

4000 - 4FFF RAM - oryginalny

5000 - 5FFF RAM1

6000 - 6FFF RAM2

7000 - 7FFF RAM3

8000 - 9FFF ROM2

A000 - BFFF ROM3

C000 - CFFF RAM4

D000 - DFFF RAM5

E000 - EFFF RAM7

F000 - FFFF RAM8

12. Jakie wielkości charakteryzują parametry elektryczne i czasowe pamięci RAM i ROM ?

Kość pamięci ROM ma - wejścia adresowe,- wyjścia danych,- wejście Chip Select,- parametr czasowy:- czas dostępu - czas po jakim na wyjściach są stabilne dane od momentu żądania odczytu.Pamięci ROM są różnych typów. Informacja może być w nich umieszczona na etapie produkcji. W innych typach np. EPROM zapis odbywa się przez "wypalanie" informacji. Jest to możliwe przy pomocy specjalnego programatora za pomocą sygnałów elektrycznych. Pamięć taką można skasować za pomocą promieni ultrafioletowych. W obudowie bowiem znajduje się okienko. W czasie normalnej pracy powinno być ono zasłonięte ( zalakierowane, bądź zaklejone nieprzezroczystym materiałem ) aby nie stracić informacji.Kość pamięci RAM ma:

- wejścia adresowe,- wejścia/wyjścia danych ( czasem możliwe osobne ),

- wejście Chip Select,- wejście READ/WRITE,- parametry czasowe:- czas odczytu,- czas zapisu.Ponadto pamięci typu RAM można podzielić na statyczne i dynamiczne. Pamięci statyczne mają mniejsze pojemności niż dynamiczne i są droższe ale łatwiejsze w użyciu gdyż pamięci dynamiczne wymagają tzw. odświeżania czyli odczytania każdej komórki co pewien czas. Czas odświeżania jest dodatkowym parametrem. Gdybyśmy nie odczytali komórki w czasie mniejszym niż czas odświeżania można utracić dane w pamięci dynamicznej. Dołączenie takich pamięci zwykle wymaga dołączenia specjalnych układów odświeżających lub odświeżać należy pamięć programowo ( np. przerwaniem o najwyższym priorytecie informujemy o konieczności odświeżenia pewnego obszaru pamięci ).Linie danych zarówno ROM jak i RAM są trójstanowe, czyli jeśli układ nie jest wybrany ( CS = "1" ) to linie danych są w stanie wysokiej impedancji aby nie zakłócać pracy magistrali systemowej.

16. Opisz zasady sprzęgania mikroprocesora z urządzeniami zewnętrz

Urządzenie zewnętrzne można podłączyć do mikroprocesora przy pomocy magistrali na której znajdują się wszystkie sygnały sterujące, szyna adresów i szyna danych mikroprocesora. Do połączenia urządzenia z magistralą używa się tzw. sprzęgu. Jest to układ, który dopasuje sygnały elektryczne między urządzeniem a magistralą. Ponadto sprzęg będzie łączył urządzenie z magistralą tylko wtedy gdy zostanie z magistrali zdekodowany adres urządzenia. Odseparowanie od szyny danych najprościej zrealizować za pomocą rejestru buforowego z trójstanowymi wyjściami. Sygnał dostępu do urządzenia pochodzi z dekodera adresu, który wykrywa odpowiedni adres na szynie adresowej, zapis/odczyt i stan linii wyboru miedzy pamięcią a we/wy. W szczególnym przypadku adresowania jednolitego gdy nie ma osobnej szyny dla we/wy testujemy tylko adres i zapis/odczyt. Dekoder adresu generuje sygnał Chip Select, którym włączamy rejestr buforowy. Wtedy możliwa jest komunikacja mikroprocesora z urządzeniem. Tak można zrobić z urządzeniem wyjściowym, ale gdy urządzenie jest wejściowe należałoby sprawdzać czy są dane do odczytania. Lepiej jednak gdy urządzenie zgłasza przerwanie informując procesor, że są dane do odebrania. W przypadku gdy w układzie jest więcej takich urządzeń należy dodatkowo do magistrali dołączyć kontroler przerwań, który będzie rozstrzygał konflikty gdy nastąpi zgłoszenie przerwania z dwóch urzą.

18. Opisz ideę przesyłania informacji między mikroprocesorem i urządzeniem zewnętrznym z potwierdzeniem.

W transmisji danych z potwierdzeniem źródło informacji nadaje sygnał dostępności danych, a odbiornik nadaje sygnał po odczytaniu, że dane odebrał. Jeśli procesor jest nadajnikiem to najpierw sprawdza stan czy bufor jest wolny. Jeśli tak to wysyła on do rejestru buforowego daną. Następnie wysyła do urządzenia sygnał o dostępności danej. Urządzenie odczytuje daną i po odczytaniu wysyła informację do mikroprocesora, że dana została odebrana i rejestr buforowy jest wolny.

20. Podaj przykładowy algorytm działania nadajnika i odbiornika podczas realizacji wymiany danych z potwierdzeniem.

Oznaczenia :RB- rejestr buforowy,

Q- rejestr potwierdzenia,= 1 - dana jest w buforze,= 0 - bufor jest wolny.

Algorytm nadajnika:1) Start.2) Wytworzenie informacji.3) Jeśli Q = 1 to 3).

4) RB := informacja.5) Do Q := 1.

6) Jeśli nie koniec przesyłania to 2).

7) Stop.Algorytm odbiornika:

1) Start.2) Q := 0.3) Jeśli Q = 0 to 3).

4) Odczyt RB.5) Q := 0.6) Użytkowanie odebranej informacji.7) Jeśli nie koniec transmisji to 3).8) Stop.

24. Omów budowę i możliwości wykorzystania sprzęgu równoległego typu 8255 firmy Intel.

Układ Intel 8255 jest uniwersalnym programowalnym układem we/wy równoległego. Umożliwia komunikację z urządzeniami wejściowymi, wyjściowymi jak i możliwa jest transmisja danych w obu kierunkach. Ma on trzy porty we/wy. A, B oraz C, które są 8-bitowe. Rejestr C ponadto można podzielić na dwie czterobitowe połówki. Jest on wykorzystywany w pewnych trybach pracy do potwierdzeń.Tryb 0 ( dostępny dla trzech portów ) jest to transmisja bez potwierdzeń. Za pomocą słów konfigurujących określa się czy port jest wejściem czy wyjściem. Przesyłanie danych odbywa się jak zapis lub odczyt rejestru.Tryb 1 ( dostępny dla A lub B ) to transmisja z potwierdzeniami. Do sterowania sygnałami potwierdzeń wykorzystywany jest rejestr C. Sygnały nie wykorzystane do potwierdzeń można wykorzystać jako dodatkowe linie danych ( są to 2 bity ).Tryb 2 ( dostępny tylko dla A ) to port z dwukierunkową szyną danych. Sygnały sterujące są tak jak poprzednio przekazywane portem C.

25. Omów protokół komunikacji szeregowej zgodny ze standardem RS232C.

Wyróżnia się dwa rodzaje transmisji:

- Synchroniczna - Synchronizacja następuje tylko raz na początku transmisji. Na linie wysyła się znak synchronizacji a po nim dane. Jeśli danych nie ma to na linie podaje się tylko znaki synchronizacji. Najczęściej są dwa znaki synchronizacji.

- Asynchroniczna - Synchronizacja następuje przed każdym znakiem. "1" jest stanem spoczynkowym linii.

Pierwsze "0" to jest bit startu. Po nim następuje N bitów kodu znaku. Na końcu są tzw. bity stopu, nie są to dane ale czas przez jaki linia powinna być wolna od przesyłanych znaków. T jest okresem jednego bitu. Im jest krótszy tym szybciej będą przesyłane dane. Dozwolone są następujące prędkości: 9600, 4800, 2400, 1200, 600, 300, 150 i 110 bit/sek. Ilość bitów na znak zawiera się od 5 do 8. Bity stopu to 1, 1.5, 2 lub ich brak. Dodatkowo należy ustalić kolejność przesyłanych bitów. Po bitach znaku może się znaleźć bit parzystości, jest on używany do kontroli poprawności przesyłanych danych.

27. Omów różnice pomiędzy transmisją szeregową synchroniczną i asynchroniczną realizowaną przez sprzęg Intel 8251.Transmisja synchroniczna:

W transmisji synchronicznej synchronizacja następuje raz na całą transmisję. O sposobie transmisji decyduje słowo sterujące w którym podaje się liczbę znaków synchronizacji ( 1 lub 2 ), sposób wykorzystania linii SYNDET ( wejście/wyjście ), kontrolę parzystości ( ON/OFF ) i jej rodzaj ( parzysta/nieparzysta ) oraz długość znaku ( 5,6,7 lub 8 bitów ). W przypadku braku danych do wysyłania na linię podawane są znaki synchronizacji.Transmisja asynchroniczna:W transmisji asynchronicznej synchronizacja następuje przed każdym znakiem. Każdy znak rozpoczyna się bitem startu ( "0" na linii ), po nim następują bity danych znaku, następnie może wystąpić bit parzystości, na końcu znajdują się bity stopu ( 1, 1.5 lub 2 ). Bity stopu nie są danymi a tylko określają przez jaki czas linia powinna być wyłączona ( "1" na linii ). Ustawień pracy dokonuje się jak poprzednio słowem sterującym.

28. W jakim celu w układzie 8251 zaimplementowano tzw. linie modemo

Linie modemowe zostały zaimplementowane w celu umożliwienia połączeniu modemu. Modem jest urządzeniem które moduluje sygnał nadawany i demoduluje sygnał odbierany. Takie przekształcanie sygnału cyfrowego umożliwia transmisję na znacznie większe odległości. Bez modemu taka transmisja była by niemożliwa gdyż zakłócenia w linii zatarły by informację.

31. Do czego służą rozkazy wykonawcze ( OCW ) w kontrolerze Intel 8259A ? Rozkazy wykonawcze w kontrolerze Intel 8259A służą do rekonfigurowania jego stanu. Umożliwiają zapis i odczyt rejestrów kontrolera. Dzięki nim można zablokować lub odblokować niektóre przerwania, zmieniać priorytet przerwań.

33. Omów znaczenie polecenia EOI dla obsługi przerwań w systemie wykorzystującym kontroler 8259A.

EOI służy do poinformowania układu o zakończeniu wykonywania przerwania, lub zezwolenia na przerwanie. Gdy ten rozkaz nie zostanie wysłany do kontrolera to układ nie odblokuje przerwań i w efekcie przerwania nie będą przyjmowa

36. Omów krótko dyrektywy prostego assemblera.W prostym assemblerze są następujące dyrektywy: DB byte1 [ , byte2 [ ,... ] ] - Define Byte -wstawienie 1 lub ciągu bajtów w kod programu, dyrektywa nadaje się również doumieszczania łańcuchów tekstowych w kodzie programu. DW word1 [ , word2 [ ,... ] ] - Define Word wstawienie 1 lub ciągu słów dwubajtowych.

Stała EQU wyrażenie arytmetyczne

- Equal -zdefiniowanie stałej 'stała', której wartość będzie równa wartości podanego wyrażenia arytmetycznego.

Zmienna DEFL wyrażenie arytmetyczne

- Define Label -jak wyżej, ale zmienna może być zmieniona kolejną dyrektywą DEFL.

ORG adres - ?????? - oznacza, że następujący dalej tekst ma być tłumaczony do pamięci pod adres podany jako argument ORG.

DS. rozmiar - Define Space pozostawienie wolnego obszaru w kodzie programu skompilowanego, zazwyczaj przed dyrektywą znajduje się etykieta dzięki której będziemy mogli się do tego miejsca odwoływać w programie assemblerowym.

END - END of file - oznacza koniec programu źródłowego.

37. Omów ideę i sposób wykorzystania dyrektywy MACRO macroassemblera.

Makrodefinicje służą do zastępowania pewnego ciągu instrukcji jednym słowem z ewentualnymi argumentami. Sprawia to wrażenie zwiększania listy rozkazów mikroprocesora, należy jednak pamiętać, że macroassembler zamieni to słowo na uprzednio zdefiniowany ciąg instrukcji.Postać dyrektywy jest następująca:

Identyfikator MACRO [ Arg1 [ , Arg2 [ ,... ] ] ]......

ciąg instrukcji assemblera ...ENDM

Argumenty jeśli występują mogą być ( i zwykle są ) wykorzystane w ciągu instrukcji znajdujących się między MACRO a END.

38. Jaką rolę spełnia w programie assemblera słownik nazw ?

Mikroprocesor przetwarza sygnały binarne, wiec rozkazy i dane także są zapisane w postaci binarnej. Jednak dla człowieka zapis programu w postaci ciągu zer i jedynek jest bardzo nieczytelny. Wymyślono więc język assembler, w którym zamieniono liczby binarne na nazwy. Znacznie to poprawiło czytelność programów mikroprocesora. Tłumaczenie tekstu źródłowego na kod maszynowy polega na zamianie nazw na odpowiednie liczby, które "rozumie" procesor. Nazwy jakie assembler jest w stanie przetłumaczyć znajdują się w słowniku nazw gdzie każdej nazwie jest przypisana liczba. W słowniku nazw zawsze znajduje się lista rozkazów mikroprocesora. Podczas assemblacji słownik wzbogaca się o nowe nazwy. Każda etykieta występująca w programie jest wpisywana do słownika z liczbą, która jest adresem w pamięci który zastępuje. Przy pomocy pewnych słów ( dyrektyw ) można zdefiniować nazwy zastępujące stałe. Assembler nie jest w stanie przetłumaczyć słowa, którego nie znajdzie w słowniku, bo nie wie jaką liczbą je zastąpić.39. Wymień i omów znaczenie atrybutów nazw wykorzystywanych w programach napisanych w języku assemblera.

Atrybuty nazw to GLOBAL i EXTERN. Są one pomocne przy pisaniu programów, które składają się z kilku plików tekstu źródłowego. Plik, który podlega bowiem assemblacji, jest tłumaczony nie do pliku wykonywalnego ale do formatu OBJ. Program wykonywalny tworzony jest przez tzw. linker, który łączy wszystkie potrzebne pliki OBJ w jeden wykonywalny.Powstaje teraz problem wymiany danych i adresów podprogramów, które znajdują się w różnych plikach. Do tego służą dwie wyżej wymienione dyrektywy.Dyrektywa GLOBAL: oznacza, że nazwa ma być dostępna także poza plikiem.Dyrektywa EXTERN: oznacza, że nazwa jest zdefiniowana poza plikiem.Jeśli skompilujemy pliki do OBJ to linker dzięki określonym atrybutom globalności danych powiąże nazwy tak opisane ze sobą i nada im ostateczne wartości, po czym umieści je w pliku wykonywalnym.

40. Omów krótko składnię programu źródłowego napisanego w języku assemblera.

Program źródłowy w języku assembler składa się z wierszy. Struktura wiersza jest następująca:

ETYKIETA,ROZKAZ,ARGUMENTY,KOMENTARZWiersz nie musi mieć wszystkich tych elementów, przeciwnie może być nawet linią pustą.

Najczęściej występuje ROZKAZ i ewentualnie ARGUMENTY rozkazu. KOMENTARZ jeśli jest musi być oddzielony od argumentów średnikiem. W assemblerze występują pewne słowa które nie są tłumaczone na kod maszynowy lecz informują w jaki sposób należy coś tłumaczyć. Są to dyrektywy assemblera, które umieszczane są w polu ROZKAZ. Jeśli w polu ROZKAZ znajdzie się instrukcja mikroprocesora albo np. dyrektywy DB, DW, DD, DS to nazwie figurującej jako ETYKIETA zostanie przypisany adres w którym miejscu w pamięci zostanie umieszczony kod wynikowy programu. Natomiast po dyrektywach EQU i DEFLnazwie w tym polu zostanie przypisana wartość wyrażenia arytmetycznego znajdującego się w polu ARGUMENTY. KOMENTARZ jest przez assembler omijany, służy tylko programiście w celu pisania informacji ułatwiających zrozumienie algorytmu.Przykład fragmentu programu:

MOV B,Licznik ; wpisanie liczby kopii

Powtórz CALL Drukuj ; wydrukowanie tekstu

DEC B ; zmniejszenie liczby kopii

JNZ Powtórz ...

Są tu 4 linie programu źródłowego. W linii 2 znajduje się pełna wersja wiersza, w pozostałych nie ma etykiety, a w 4 nie ma jeszcze komentarza.

42. Omów znaczenie i sposób współpracy jednostek BIU i EU mikroprocesora Intel 8086.

Mikroprocesor 8086 składa się z dwóch części:- BIU - układ sterowania magistral ( bus interface unit )

- EU - układ wykonawczy ( execution unit ).Obie części mają własne układy sterowania i pracują częściowo niezależnie. Zadaniem BIU jest adresowanie pamięci, pobieranie kolejnych rozkazów z pamięci i umieszczanie ich w kolejce rozkazów oraz, na żądanie EU, pobieranie lub przesyłanie argumentów do pamięci. Zadaniem układu wykonawczego EU jest pobieranie kolejnych rozkazów z kolejki i ich wykonywanie, a więc m.in. obliczanie adresów efektywnych argumentów i realizacja odpowiadających rozkazom operacji przetwarzania informacji. Dzięki równoległej pracy obu układów i istnieniu 6-bajtowej kolejki rozkazów cykl wykonania kolejnego rozkazu zachodzi w czasie na cykl pobierania następnych rozkazów, co znacznie zwiększa efektywną szybkość pracy mikroprocesora (oczywiście przy wykonywaniu rozkazu skoku rozkazy pobrane "na zapas" są usuwane z kolejki).

43. Omów różnice w sposobie pobierania rozkazów przez mikroprocesory Intel 8080 i 8086.

W mikroprocesorze 8080 pobranie rozkazu następowało po wykonaniu poprzedniego rozkazu, tzn. mikroprocesor nie komunikował się z pamięcią ( aby pobrać kolejny rozkaz ) jeśli był w trakcie wykonywania jakiegoś rozkazu. W mikroprocesorze 8086 zorganizowano to inaczej. 8086 składa się z dwóch części EU i BIU. EU zajmuje się wykonywaniem rozkazów znajdujących się w kolejce rozkazów. BIU zajmuje się pobieraniem rozkazów z pamięci i umieszczaniem ich w kolejce rozkazów. Dzięki takiej konstrukcji mikroprocesor może pobierać następne rozkazy do wykonania "na zapas", zwiększa to szybkość pracy

44. Omów rejestry jednostki centralnej mikroprocesora Intel 8086 oraz scharakteryzuj ich przeznaczenie.

Rjestry robocze ( 16-bitowe ):AX - akumulator, jest używany do obliczeń arytmetycznych i logicznych. Można go używać niezależnie jako dwa rejestry 8-bitowe AH i AL.

BX- rejestr bazowy, jest używany do adresowania bazowego, można go używać jako 8bitowe rejestry BH i BL.

CX- rejestr zliczający, w pewnych rozkazach podaje liczbę powtórzeń operacji, także dzieli się na CH i CL.

DX- rejestr danych, w operacjach mnożenia i dzielenia przechowuje starsze 16-bitów danych lub
wyniku. Daje się podzielić na DH i DL. Jest używany ponadto do adresowania portów wejścia - wyjścia. Na wszystkich powyższych rejestrach można wykonywać proste operacje arytmetyczne i logiczne.Rejestry indeksowe i bazowe ( 16-bitowe ):SP -wskaźnik stosu, zwiększany lub zmniejszany przy standardowych rozkazach zapisu i odczytu stosu, wywołania i powrotu z podprogramu, przyjęcia i zakończenia przerwania.BP-wskaźnik bazowy, wykorzystywany do adresowania w segmencie stosowym przy pobieraniu parametrów i zapisie wyników przekazywanych przez stos. SI -rejestr indeksowy źródła, służy do adresowania w segmencie danych.DI- rejestr indeksowy przeznaczenia, również do adresowania w segmencie danych, w niektórych rozkazach w segmencie dodatkowym.Rejestry segmentowe ( 16-bitowe ):CS - Code Segment - rejestr segmentu programu, zawiera początkowy adres segmentu pamięci, w którym znajduje się program.DS - Data Segment - rejestr segmentu danych, zawiera adres początku segmentu, w którym umieszczone są dane. Dane mogą być adresowane z użyciem rejestrów SI, DI lub BX. Jest to rejestr domyślnie używany w większości odwołań do pamięci.SS - Stack Segment - rejestr segmentu stosu, zawiera adres początku segmentu pamięci, w którym znajduje się stos. Dwa rejestry służą do adresowania danych wewnątrz tego segmentu, a mianowicie wskaźnik stosu SP, przy standardowych operacjach zapisu i odczyt stosu, oraz wskaźnik bazowy BP, przy operacjach nietypowych ( np. pobieranie parametrów przekazywanych przez stos ).ES- Extra Segment - rejestr segmentu dodatkowego, w pewnych operacjach blokowych jest używany jako rejestr dodatkowego segmentu danych ( np. przepisanie bloku pamięci z A do B, A ma adres w DS:SI a B ma adres w ES:DI ).Ponadto w 8086 znajdują się rejestry:IP- licznik rozkazów, który wraz z CS określają adres następnego rozkazu do wykonani

F- rejestr znaczników, w którym znajdują się:C - ( carry ) - przeniesienie,

P - ( parity ) - parzystość,A - ( auxiliary carry )- przeniesienie pomocnicze,Z - ( zero )- zero,S - ( sign ) - znak,T - ( trap )- pułapka,I - ( interrupt enable ) - zezwolenie na przerwanie,D - ( direction )- kierunek,V - ( overflow )-nadmiar.

45. Omów sposób organizacji przestrzeni adresowej mikroprocesora Intel 8086.

Przestrzeń adresowa mikroprocesora Intel 8086 jest 20 bitowa czyli 1MB. Jest ona podzielona na segmenty ( adresowane za pomocą rejestrów segmentowych ). Segmenty mogą mieć do 64KB pamięci. Adres fizyczny segmentu to wartość rejestru segmentowego pomnożona przez 16 ( dopisane na końcu 4 zera, czyli 16-bitów + 4-bity zerowe = 20-bitów adresu fizycznego segmentu ). Rejestry segmentowe są jakby oknem na pewien 64KB obszar z 1MB. W takim oknie procesor adresuje pamięć za pomocą 16-bitowych rejestrów indeksowych, bazowych lub przez bezpośredni adres 16-bitowy. Segmenty mogą na siebie nachodzić, bo w fizycznej pamięci ich początki są rozlokowane co 16 bajtów. W szczególności gdy CS = SS = DS = ES to wszystkie segmenty są w tym samym miejscu pamięci i mikroprocesor ma dostęp tylko do 64KB.

46. Omów różnice w funkcjonowaniu mikroprocesora Intel 8086 przy pracy w trybie maksymalnym i minimalnym.

Mikroprocesor 8086 może pracować w trybie minimalnym lub maksymalnym. W trybie minimalnym jest on używany w systemie jednoprocesorowym. Jest on wtedy jakby samowystarczalny i można go podłączyć bezpośrednio do magistrali bez dodatkowych urządzeń wspomagających. W trybie maksymalnym jest on używany w systemie wieloprocesorowym. W tym wypadku procesor nie jest podłączony bezpośrednio do magistrali ale za pomocą układu dodatkowego. O trybie pracy decyduje stan wejścia MN/MX, "1" oznacza tryb minimalny, "0" oznacza tryb maksymalny.

47. Omów dopuszczalne przez mikroprocesor 8086 tryby adresowania.

1) Natychmiastowe - argument znajduje się za kodem rozkazuMOVAX,liczba

2) Bezpośrednie - argument znajduje się w pamięci o adresie podanym wprost po kodzie rozkazuMOV AX,[adres]

3) Zawartością rejestru - argument znajduje się w pamięci a adresie znajdującym się w rejestrze BX, BP, SI i DI.

MOV AX,[BX]

4) Bazowe - argument znajduje się w pamięci o adresie będącej sumą rejestru bazowego BP lub BX i przesunięcia

MOV A X,[BX+nn]

5) Indeksowe - argument znajduje się w pamięci o adresie będącej sumą rejestru indeksowego SI lub DI i przesunięcia

MOV AX,[SI+nn]

6) Indeksowo-bazowe - adresowanie 4) i 5) połączone razem

MOV AX,[BP+DI+nn]

7) Można też czasami zrobić mieszankę powyższych sposobów adresowania ( ale nie zawsze )

MOV [BX+DI+nn],mm

48. Omów strukturę przerwań mikroprocesora Intel 8086.

Przerwania mikroprocesora Intel 8086 można podzielić na następujące grupy:

z ustalonym wektorem przerwań:

00 - dzielenie przez zero,

01 - przerwanie pojedynczego kroku, gdy ustawiona jest flaga T, wykorzystywane przez debugery do wykonywania programu rozkaz po rozkazie,

02 - przerwanie sprzętowe niemaskowalne o najwyższym priorytecie,

03 - pułapka tzw. breakpoint, także wykorzystywane przez debugery,

pochodzące z programu:rozkaz INT nr mikroprocesora 8086, są one niemaskowalne, na stos jest automatycznie odkładany rejestr flagowy.przerwania ze sprzętu: są sygnalizowane na wejściu zewnętrznym INTR. Są one maskowalne flagą I. Istnieją wyjątki powodujące opóźnienie przyjęcia przerwania, 1 - realizacja związana z operacją na wskaźniku, 2 - realizacja rozkazu WAIT, przejście w stan oczekiwania dopóki na wejściu TEST nie pojawi się "1".

49. Omów sposób obsługi przerwań przez mikroprocesor Intel 8086 z uwzględnieniem współpracy z kontrolerem przerwań Intel 8259.

Sygnał przerwania dochodzi do IRQi układu 8259. Jeśli nie jest ono zablokowane to blokowane są przerwania o priorytecie mniejszym lub równym odebranemu. Na wejście INT podany zostaje sygnał o zgłoszeniu przerwania. Procesor potwierdza to sygnałem INTA. Następnie kontroler podaje na linii danych numer przerwania. Procesor potwierdza to drugim sygnałem INTA. Procesor wykonuje skok do programu obsługi przerwania o podanym numerze. Przed skokiem na stos odkładana jest zawartość rejestru flag oraz adres aktualnego miejsca w programie czyli rejestry CS i IP. Adresy programów obsługi znajdują się w wektorze przerwań na początku pamięci ( 0000H - 03FFH - 256 adresów czterobajtowych ). System przerwań w Intel 8086 jest jednopoziomowy ale istnieje możliwość programowej zmiany. Po zakończeniu przerwania należy wykonać EOI aby poinformować kontroler o zakończeniu obsługi przerwania i odblokowaniu wejść IRQi. Podprogram obsługi kończy się instrukcją IRET. Oznacza on powrót z przerwania.

- 3 -



Wyszukiwarka

Podobne podstrony:
Calkowanie numeryczne, WIP AIR, SEM 1, TEINF, TEINF, Teinf projekty
Przyżądy Optoelektroniczne, AiR Sem IV gr I Sekcja
projekt 3 i 4 - sroda 8-10 i 10-12, WIP AIR, SEM 1, TEINF, TEINF, Teinf projekty
pytania na mamet (5), WIP AIR, SEM 1, MATIN, MATIN, kolokwia, kolos 1
Kol 2, WIP AIR, SEM 1, MATIN, MATIN, kolokwia, kolos 2
Uskom, WIP AIR, SEM 1, USKOM, USKOM, Uskom 2014
Calkowanie numeryczne, WIP AIR, SEM 1, TEINF, TEINF, Teinf projekty
Egz AiR, sem letni 2013 informacja
Krystian Babioch AiR sem
LAB6MICR, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY
MICRO7~1, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY
Polimery-IM sem.V-zagadnienia na zaliczenie, Studia, AiR, SEMESTR II, TSiIW
zaliczenie TM - E4 2, Szkoła, Politechnika 1- 5 sem, politechnika, 3 rok, technika mikroprocesorowa
Budowa mikroprocesora, Politechnika Lubelska, Studia, Semestr 6, sprawka 6 sem moje
PROCES5, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY
M7, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY LABOL

więcej podobnych podstron