background image

POSK zminimalizowane jak się dało  

 

MC_OMEN

 

 

background image

1.  Jaki cel przyświecał podziałowi jednostki centralnej na kilka działających współbieżnie jednostek 

funkcjonalnych? Wyjaśnij na przykładzie. 

Cel : Przyśpieszenie pracy procesora (wykonywanie czynności jednocześnie)  
Koprocesor 8087:  
- blok rozkazów sterujących i współpracy z magistralą (pobieranie rozkazów i argumentów, wysyłanie wyników stanu 
układu  do pamięci,  odtwarzanie stanu układu; wykonuje rozkazy sterujące) 
- blok rozkazów numerycznych. (operacje na argumentach umieszczonych w bloku rejestrów (stos)) 
 

2.  Przedstaw ideę i sposób realizacji podziału przestrzeni adresowej mikroprocesora na przykładzie I800 lub Ix86. 

Idea: Segmentacja pamięci ->Każdy proces otrzymuje swój 
własny obszar pamięci, realizowany poprzez rejestry 
segmentowe. Segmentacja pamięci polega na podzieleniu 
przez procesor pamięci fizycznej na fragmenty o 
określonym początku, rozmiarze, atrybutach i 
identyfikatorze. System tworzy takie segmenty na żądanie 
aplikacji, przekazując jej jedynie identyfikatory nie 
pozwalające na odczytanie parametrów segmentów.  
Mikroprocesor 8086 posiada 20-bitową magistralę 
adresową. Pozwala ona na zaadresowanie do 1MB pamięci 
operacyjnej. Przestrzeo adresowa została podzielona na 
segmenty o długości 64kB, rozpoczynające się co 16 bajtów 
(kolejne segmenty pamięci mogą nakładad się na siebie). 
CS – segment kodu programu,  SS – segment stosu, DS – 
segment danych, ES – dodatkowy segment danych 
 

 

I8080 
Dla tego przypadku jest 16 bitowa magistrala adresowa pozwalająca na zaadresowanej do 64 kB , 8 bitowa magistrala 
danych. Przestrzeo adresowa jest podzielona na segmenty 8 bitowe. 
 

3.  Opisz budowę i składnię rozkazu mikroprocesora na przykładzie I800 lub Ix86. 

Rozkazy mikroprocesora 8086 są wielobajtowe. Ich liczba (bajtów) zależy od rodzaju rozkazu i może wynosid od jednego 
do sześciu. Pierwszy bajt : kod operacji + D+W. 
Bit D określa kierunek transmisji (0 - wynik operacji jest przesyłany z rejestru do pamięci, 1 - z pamięci do rejestru). W 
zależności od wartości tego bitu w rozkazie rozróżniane są operandy źródłowe i operandy przeznaczenia. Bit W określa 
długośd operandu danego rozkazu (0 - operacje bajtowe, 1 - operacje na słowie 16-bitowym). 
Jeżeli rozkaz jest wielobajtowy, to drugi bajt rozkazu określa sposób adresowania argumentów. Zawiera on trzy grupy 
bitów : MOD określa tryb adresowania, REG określa numer rejestru, w którym znajduje się operand, R/M określa sposób 
wyznaczenia miejsca operandu. Trzeci i czwarty bajt to bajty przemieszczenia (jeden lub dwa – w zależności od MOD). 
Piąty i szósty bajt to argumenty natychmiastowe. 

 

 

background image

4.  Wymieo i opisz trzy dowolnie wybrane tryby adresowania. Podaj przykłady. 

Nazwa 

Adresowanie 
natychmiastowe 

Adresowanie rejestrowe 
 

Adresowanie 
bezpośrednie 

Opis 

Argument pobierany jest 
bezpośrednio z rozkazu. W 
tym trybie wskazywany jest 
wyłącznie operand źródłowy 

operandy znajdują się w rejestrach 
wewnętrznych mikroprocesora. Jeżeli operand 
znajduje się w pamięci, to zespół wykonawczy EY 
oblicza jego 16-bitowy adres (przesunięcie) 
wewnątrz segmentu. Zespół BIU oblicza adres 
rzeczywisty na podstawie otrzymanego 
przesunięcia (adresu efektywnego EA) i 
zawartości wybranego rejestru segmentowego 

adres operandu 
znajduje się 
bezpośrednio w 
rozkazie 

Przykład 

MOV AX, 20 

MOV AX, BX 

MOV AX, [40] 

 

5.  Jak przebiega translacja adresu logicznego segment-przesunięcie na adres fizyczny? 

Operacja translacji adresu logicznego na fizyczny jest dokonywana przed 
wykonaniem każdej instrukcji maszynowej przez procesor. Adres logiczny 
składa się z dwóch części:  
• 16 bitowej części segmentowej (zawartośd jednego z rejestrów 
segmentowych ) 
• 16 bitowego przemieszczenia (adres efektywny) 
co zapisujemy w postaci: 
częśd segmentowa : przemieszczenie 
adres fizyczny = częśd segmentowa*16 + przemieszczenie 
Oznacza to, że przemieszczenie dodaje się do części segmentowej 
przesuniętej o 4 bity w lewo, co daje adres 20 bitowy, którym można 
zaadresowad 220 = 1048576 bitów = 1MB pamięci operacyjnej RAM. 

 

 

6.  Opisz przebieg cyklu pracy mikroprocesora. 

  Pobranie (fetch) – kod rozkazu zostaje pobrany z pamięci do zestawu rejestrów tworzących kolejkę rozkazów skąd 

trafi do rejestru rozkazów IR procesora; 

  Dekodowanie (decode) – w tej fazie rozkaz jest dekodowany i ustalane są, jeśli wymaga tego typ rozkazu, połączenia 

arytmometru z rejestrami, które mają dostarczyd argumentów operacji 

  Odczyt (read) – jeżeli rozkaz wymaga argumentu z pamięci operacyjnej, to zostaje obliczony jego adres, a następnie 

argument jest odczytywany i wprowadzany do procesora 

  Wykonanie (execute) – w tej fazie operacja zdefiniowana rozkazem jest wykonywana; 
  Zapis (write) – jeżeli wynik operacji ma byd umieszczony w pamięci operacyjnej, to zostaje obliczony adres i 

wykonany jest zapis do pamięci 

Po zapisie modyfikowany jest licznik rozkazów o liczbę zależną od długości rozakzu i jego typu 
 

7.  Opisz ideę i podaj przykład wykorzystania mechanizmu oczekiwania mikroprocesora (READY – WAIT). 

Wejście Ready – wejście sygnału wskazującego jednostce centralnej obecnośd danych na magistrali. Sygnał jest używany 
do synchronizacji CPU z pamięcią lub urządzeniami we/wy, jeżeli po wysłaniu adresu jednostka centralna 
mikroprocesora (I8080) nie otrzyma sygnału na wejściu READY wejdzie w stan oczekiwania (WAIT) i pozostanie w nim do 
chwili pojawienia się stanu wysokiego na linii READY. Wyjście WAIT – wyjście sygnału potwierdzającego stan oczekiwania 
jednostki centralnej na dane. Jeżeli WAIT = 1, to mikroprocesor oczekuje na zgłoszenie gotowości do obsługi układu 
zewnętrznego (pamięd, układ we/wy). 
 
 

background image

8.  Przedstaw budowę i objaśnij konstrukcję sprzętu portu wejściowego mikroprocesora pracującego z 

potwierdzeniem. 

Mikroprocesor 8255 może pracowad w trzech trybach: 0, 1 lub 2. Tryb 1 charakteryzuje: 
• porty pracują jako wejście z potwierdzeniem lub wyjście z potwierdzeniem 
• przesłanie danych następuje z potwierdzeniem; 
• sygnały sterujące przepływem danych przesyłane są liniami szyny PC; 
• przesyłane dane są pamiętane (porty A, B). 
Natomiast dla trybu 2 jest to: 
• przesyłanie danych odbywa się w obu kierunkach tylko poprzez port A; 
• sygnały sterujące wysyłane są liniami portu C; 
• przesyłane dane (w systemie z potwierdzeniem) są pamiętane; 
• port A stanowi dwukierunkowy układ we/wy z potwierdzeniem. 
W obu przypadkach stosuje się sygnał wejściowy ACK (acknowledge) – sygnał potwierdzenia odczytu, odebrania danych. 
W trybie 1 niski poziom sygnału ACK informuje, że dane kanału A lub kanału B zostały odebrane przez urządzenia 
zewnętrzne. W trybie 2 niski poziom na wejściu ACK odblokowuje trójstanowy bufor wyjściowy kanału A, aby wysłał 
dane wyjściowe. W innym przypadku bufor wyjściowy znajduje się w stanie wysokiej impedancji. 
 

9.  Przedyskutuj wady i zalety trzech mechanizmów przekazania potwierdzenia operacji wejścia/wyjścia do 

mikroprocesora. 

Nazwa 

A-programowe sterowanie I/O z odpytywaniem 
(ang. polling): 
 

B-obsługa I/O w przerwaniu: 
 

C-bezpośredni dostęp 
do pamięci przez kanał 
DMA  

Opis 

przetwarzanie danych odbywa się całkowicie pod 
kontrolą programu realizowanego przez procesor. 

// Opis przerwania 
 

 

Wady 

ciężar współpracy przerzucony na procesor i 
programistę, który musi znad protokół i 
specyfikację techniczną urządzenia, zajętośd 
procesora spowodowana okresowym 
odpytywaniem urządzenia. 

koniecznośd programowej i 
sprzętowej obsługi przerwao 
(zewnętrzny lub wewnętrzny 
kontroler przerwao). 

koniecznośd 
programowej i 
sprzętowej obsługi 
transmisji DMA 
(wymagany kontroler). 

Zalety 

przejrzystośd kodu. 
 

obsługa urządzenia 
(dodatkowe zadanie dla 
procesora) tylko wtedy, gdy 
jest zgłaszana taka potrzeba. 

wymiana danych bez 
udziału procesora. Daje 
to odciążenie procesora 
oraz możliwośd 
efektywnego 
przesyłania danych przy 
dużych, podobnych 
blokach danych.  

 
 

 

background image

10. Opisz mechanizm kompatybilności w dół na przykładzie organizacji rejestrów mikroprocesora x86. 

Kompatybilnośd wsteczna - cecha standardu, urządzenia lub oprogramowania, dzięki której - mimo zmiany 
funkcjonalności - nowa wersja umożliwia współpracę z całym otoczeniem starej wersji i jej wszystkimi komponentami. 
Mówi się wtedy o rozszerzeniu funkcjonalności. W przypadku mikroprocesora rodziny x86 organizację rejestrów można 
przedstawid schematycznie: 

8086 

80386 

 

Każdy rejestr jest 
wyspecjalizowany, chociaż 
niektóre z nich mogą również 
służyd jako rejestry ogólnego 
przeznaczenia. 

Rejestry 32-bitowe  
W celu zapewnienia 
kompatybilności programów 
napisanych dla wcześniejszych 
maszyn procesor 80386 
zachowuje oryginalną 
organizację rejestrów 
osadzoną w nowej organizacji. 
Dla architektów procesorów 
jest to znaczne ograniczenie 
projektowe, które zmniejsza 
swobodę w projektowaniu 
organizacji rejestrów. 
Podobną kompatybilnośd 
zachowano dla trzeciej 
generacji procesorów z 
rodziny x86, czyli procesorów 
64-bitowych. 

4 16-bitowe rejestry danych, 
adresowalne na podstawie 8- lub 
16-bitowej, 
4 16-bitowe rejestry wskaźnikowe 
i indeksowe 
W odniesieniu do niektórych 
rozkazów rejestry danych mogą 
służyd jako robocze. W odniesieniu 
do pozostałych rozkazów są one 
używane  domyślnie 

Specjalizacja rejestrów umożliwia 
uzyskanie zwięzłego kodu kosztem 
elastyczności. 
Wskaźnik rozkazu i zespół 1-
bitowych znaczników stanu i 
sterowania 

 

 

11. Wymieo i opisz znaczenie dla mikroprocesora rejestrów segmentowych. 

Rejestr segmentowy – rejestr procesora stworzony do przechowywania adresu początkowego obszaru pamięci, w 
którym umieszczone są rozkazy, dane albo stos programu. Rejestry segmentowe są realizacją idei segmentacji pamięci i 
lokalności danych. W trybie rzeczywistym adresy mają 20 bitów. Natomiast rejestry mają 16 bitów. Zatem by uzyskad 
fizyczny adres komórki pamięci zawartośd rejestru segmentowego mnoży się razy 16 (aby uzyskad przesunięcie w prawo 
w segmencie o 4 bity – 24, czyli brakujące 4 bity do 20 bitów adresu rzeczywistego wypełnia się zerami) i dodaje 
przesunięcie (OFFSET) (odległośd od początku segmentu). W trybie chronionym rejestry segmentowe zawierają 
selektory, które wskazują na pole w tablicy deskryptorów. Z wskazanego elementu tablicy deskryptorów procesor 
pobiera 32-bitowy adres bazowy (w przypadku 80286 deskryptor zawiera jedynie 24-bitowy adres bazowy), który 
sumowany jest z przesunięciem. Tak powstaje adres liniowy, który przy włączonym mechanizmie stronicowania zostaje 
poddany transformacji na adres fizyczny. Uwaga: w tym trybie zawartośd rejestru segmentowego nazywana jest 
selektorem! 
 

12. Jaką rolę odgrywają flagi I, D oraz T w mikroprocesorze x86. 

Nazwa  IF (interrupt flag) 

DF (direction flag) 

TF (trap flag) 

Opis 

znacznik przerwao 

znacznik kierunku, wskazuje, czy 
zawartości rejestrów SI i DI mają 
byd zwiększane lub zmniejszane 
o jeden w czasie wykonywania 
operacji łaocuchowych 

znacznik pułapki umożliwiającej pracę 
krokową 

zezwolenie na przyjmowanie 
przerwao 

- rejestry są zmniejszane 
 

praca krokowa włączona, 
mikroprocesor po wykonaniu każdego 
rozkazu wykona skok do odpowiedniego 
podprogramu obsługi przerwania 

background image

brak zezwolenia na przyjmowanie 
przerwao z wejścia INT 

rejestry są zwiększane 

praca krokowa wyłączona 

 

13. Opisz czynności j.c. związane z przyjęciem przerwania sprzętowego. 

Przerwania są sprzętowym mechanizmem służącym do zawiadamiania procesora o rozmaitych zdarzeniach. Procesor ma 
tzw. linię zgłaszania przerwao, którą bada po wykonaniu każdej instrukcji.  
Sygnał przerwania -> przerwanie aktualnego ciągu instrukcji -> zapamiętanie stanu na stosie -> wykonanie instrukcji 
przerwania -> powrót do przerwanego ciągu instrukcji. 
Rozróżnianie przerwao : 
• odpytywanie -  procedura obsługi przerwania pyta się kolejno wszystkich urządzeo, czy to nie one spowodowały 
przerwanie; rozwiązanie to jest stosowane wówczas, gdy mamy tylko jeden rodzaj przerwao, 
• wektor przerwao - w systemie może byd wiele rodzajów przerwao, a każdemu rodzajowi odpowiada osobna procedura 
obsługi; adresy tych procedur są przechowywane w tablicy systemowej nazywanej wektorem przerwao; rozwiązanie to 
jest bardziej efektywne niż odpytywanie. 
 

14. Przedstaw algorytm wyznaczania adresu fizycznego operandy dla rozkazu MOV r, [SI+d]. 

W generatorze adresu fizycznego określony jest adres rozkazu MOV (w segmencie kodu programu). Następnie do 
zawartości rejestru źródłowego SI (source index) dodawana jest wartośd d. Po raz kolejny w generatorze adresu 
fizycznego wyznaczany jest adres argumentu w segmencie danych, na podstawie wartości SI + d. Ostatecznie do rejestru 
r wpisywany jest znaleziony argument. 
 

15. O czym decyduje przyjęcie określonego modelu pamięci? 

Określenie modelu pamięci jest związane z jej podziałem. Operacje wykonywane w 1 segmencie nazywamy bliskimi, 
wykonywane w wielu segmentach to operacje dalekie. Użycie modeli pamięci TINY, SMALL i COMPACT pozwala na 
odwołania bliskie, LARGE i HUGE na odwołania dalekie. Wywołania bliskie są szybsze, prostsze i oszczędniej wykorzystują 
pamięd i stos. Model pamięci trzeba dostosowad do programów wywołujących, modułów bibliotecznych i rozmiarów 
programu. 
 

16. Co to jest i do czego służy kolejka rozkazów? 

Jest to 6-bajtowa pamięd zorganizowana w słowa (3x 2bajtowe komórki) wykorzystywane przez mikroprocesor do 
przechowywania pobranych wcześniej rozkazów. Służy do przyspieszania pracy procesora poprzez pobieranie rozkazów 
w czasie, w którym procesor nie wykorzystuje szyny danych. 
 

17. Dlaczego liczby 16-bitowe powinny byd umieszczone w pamięci pod adresem parzystym? Odpowiedź 

uzasadnij. 

Wynika to ze sposobu dostępu do pamięci w zależności od wartości sygnału BHE i bitu adresu A0. Jeśli liczba 16-bitowa 
jest umieszczona pod adresem parzystym, to jej transfer jest przeprowadzony w jednym cyklu maszynowym. W 
przeciwnym razie do transferu liczby 16-bitowej potrzeba dwóch cykli maszynowych. 
 

18. Porównaj cechy architektury CISC i RISC. 

CISC 

RISC 

Zawierają ograniczony, prosty zbiór instrukcji. 
Zawierają dużą liczbę uniwersalnych rejestrów. 
Instrukcje arytmetyczno-logiczne wykonywane są na 
rejestrach. 
Kody instrukcji są stałej długości, typowo 16 bajtów, i 
maja stałe rozmieszczenie pól, co ułatwia dekodowanie. 
Posiadają mała liczbę trybów adresowania. 

Występują skomplikowane instrukcje wspierające języki 
wysokiego poziomu. 
Zawierają mała liczba rejestrów i/lub rejestry 
specjalizowane. 
Instrukcje arytmetyczno-logiczne mogą pobierad  
argumenty z pamięci i umieszczad wynik w pamięci. 
Kody instrukcji maja zmienna długośd, typowo od jednego 
do kilkunastu bajtów. Występuje prefiksowanie instrukcji 
utrudniające dekodowanie. 
Posiadają dużą liczbę trybów adresowania. 

 

background image

19. Na czym polega większa efektywnośd rozkazów operujących na łaocuchach (ciągach) w stosunku do ciągu 

klasycznych rozkazów tworzących pętlę programową? 

Rozkazy operujące na ciągach słów posługują się indeksami. Rejestry SI i DI zawierają adresy efektywne pierwszego 
słowa odpowiednio w ciągu źródłowym i wynikowym. Po każdej transmisji wartości rejestrów indeksowych są 
automatycznie inkrementowane lub dekrementowane w zależności od ustawienia bitu flagi D w rejestrze flag. Większa 
efektywnośd polega na braku konieczności pobierania za każdym razem instrukcji. 
 

20. Czym różni się skok zwykły od skoku ze śladem? 

Instrukcja skoku ze śladem wykonuje skok po uprzednim zapamiętaniu wartości rejestru PC. Podczas wykonywania 
instrukcji skoku ze śladem PC wskazuje następną instrukcję po instrukcji skoku, i taka właśnie wartośd PC podlega 
zapamiętaniu. Instrukcja skoku ze śladem służy do przekazania sterowania do procedury (wywołania procedury). 
Instrukcja powrotu według śladu jest instrukcją skoku, której adres docelowy jest uprzednio zapamiętanym adresem 
śladu wywołania, czyli adresem wskazującym następną instrukcję po ostatnio wykonanej instrukcji skoku ze śladem. 
Czyli generalnie: Zapamiętujemy adres miejsca, skąd został wykonany skok. I tak układamy kolejne adresy na stos 
Możemy zatem, cofając się, wrócid aż do punktu wyjścia. Skok ze śladem - rozkaz CALL – zapisuje na stosie adres 
powrotu do procedury (adres następnej instrukcji) – jest to albo IP albo CS:IP w zależności czy skok był wewnątrz 
segmentu czy między segmentami. Wewnątrz procedury znajduje się rozkaz RET, który pobiera ze stosu adres powrotu , 
ustawiając się tym samym za instrukcją CALL, która oryginalnie spowodowała wykonanie procedury. W przypadku skoku 
bez śladu – rozkaz JMP – nie zapisuje się nigdzie ślad powrotu do procedury wywołującej. 
 

21. Porównaj konsekwencje wywołania podprogramu bliskiego oraz odległego. 

ACALL wywołanie podprogramu (bliskie - adres 11 bitowy) ACALL PROCEDURA 
LCALL wywołanie podprogramu (dalekie - adres 16 bitowy) LCALL PROCEDUR 
Wywołanie podprogramowe dalekie wymaga modyfikacji przesunięcia i segmentu, a bliskie nie. W związku z tym, 
zajmuje więcej czasu i pamięci. 
 

22. Do czego może byd wykorzystany rozkaz NOP? Podaj przykład. 

NOP - no operation - rozkaz pusty. 
Umożliwia odliczanie czasu, gwarantuje,że żadne informacje zapisane w rejestrach nie ulegną zmianie, jedynie zajmuje 
kilka jednostek czasowych. Jego wykonanie nie wywołuje żadnych efektów, zajmuje jedynie czas 1 cyklu maszynowego. 
Często jest on wykorzystywany jako rezerwacja miejsca pamięci przeznaczonego na późniejszą rozbudowę programu 
(daje szansę na przyszłe uzupełnienie programu o dodatkowe rozkazy, bez jego ponownej asemblacji), lub jako 
niewielkie (1 cykl) opóźnienie w wykonywaniu programu. 
 

23. Na czym polega wektorowy system przerwao? 

Najbardziej zaawansowanym i często stosowanym jest system przerwao wektoryzowanych. W systemie tym na sygnał 
potwierdzenia przyjęcia przerwania przez jc urządzenie, które zgłosiło przerwanie, podaje na szynę danych kod 
identyfikacyjny, który jest traktowany jako numer elementu w wektorze przerwao. Zatem każdemu przerwaniu 
przypisany jest adres obsługi przerwania w pamięci programu.
 W tym systemie każdemu przerwaniu jest przypisany na 
stałe priorytet. Jeżeli pojawi się w tym samym czasie kilka przerwao to najpierw obsługiwane jest to o najwyższym 
priorytecie, a następnie według ważności priorytetów kolejne przerwania. Często przerwanie o wyższym priorytecie 
może przerwad obsługę przerwania o niższym (nigdy nie odwrotnie). Wymaga on użycia osobnego, programowalnego 
kontrolera przerwao (ang. PIC). Ten kontroler połączony jest z procesorem. Jeśli urządzenie peryferyjne zgłosi 
przerwanie, to kontroler je identyfikuje i przekazuje jego numer procesorowi. Numer ten jest indeksem w tablicy 
wektorów przerwao (ang. ivt). Wartościami tej tablicy są adresy procedur obsługi przerwao. Każde przerwanie może 
więc mied własną procedurę obsługi. Tablica ta umieszczana jest zazwyczaj na początku pamięci operacyjnej komputera 
(rzadko na koocu) i wraz z procedurami obsługi przerwao stanowi częśd systemu operacyjnego. 
 

24. Do czego służy mechanizm pracy krokowej mikroprocesora? 

Praca krokowa polega na wykonywaniu pojedynczych cykli rozkazowych lub cykli procesora. Po wykonaniu kolejnego 
kroku mikroprocesor zatrzymuje się bądź przechodzi do wykonywania programu sterującego zwanego monitorem. 
Dzięki temu istnieje możliwośd kontroli stanu mikroprocesora i pamięci w trakcie wykonywania programu. 
 

background image

25. Jak działa przerwanie typu T (pułapka)? 

Przerwanie, które następuje po wykonaniu jednej instrukcji, a przed wykonaniem nastepnej. Procedura obsługi takich 
przerwao wraca do tej niewykonanej instrukcji i ją wykonuje. Zatem w działaniu programu nie ma żadnych 
nieregularności - przepływ sterowania jest zwyczajny. Pułapka to sytuacja, która nie jest błędem, jej wystąpienie ma na 
celu wykonanie określonego kodu; wykorzystywane przede wszystkim w debugerach; gdy procesor powraca do 
wykonywania przerwanego kodu, wykonuje następną, po tej która wywołała wyjątek, instrukcję.  
 

26. Do czego służą przerwania niemaskowalne? 

Specjalny rodzaj przerwania występujący w większości architektur procesorów. Tym, co odróżnia je od zwykłego 
przerwania, jest brak możliwości zignorowania go (zamaskowania maską przerwao). Obecnie przerwania te używa się 
głównie do debugowania kodu programów, który może wyłączad zwykłe przerwania (np. kod systemu operacyjnego). 
 

27. Czym różni się adresowanie jednolite od odrębnego pamięci i urządzeo we/wy? 

Jednolite - jednakowe traktowanie przez sprzęt odwołao do pamięci operacyjnej i odwołao do urządzeo wejścia-wyjścia; 
w adresowaniu jednolitym porty urządzeo zewnętrznych są odwzorowywane w pamięci operacyjnej; te same rozkazy są 
używane do adresowania przestrzeni we/wy i pamięci, przestrzenie są rozdzielone tylko fizycznie. Odrębne – do 
adresowania we/wy i do adresowania pamięci używane są różne rozkazy. 
 

28. Czym różni się praca mikroprocesora w trybie rzeczywistym i chronionym? 

Tryb rzeczywisty 

Tryb chroniony 

Wszystkie programy pracujące w trybie rzeczywistym 
mogą korzystad tylko z instrukcji 16-bitowych i 
współpracowad z 20-bitową architekturą pamięci (1 MB). 
Tego typu oprogramowanie z reguły jest jednozadaniowe, 
co oznacza, że jednocześnie może byd uruchomiony tylko 
jeden program. Ponadto nie ma wbudowanej żadnego 
ochrony zapobiegającej wykorzystaniu przez program 
obszaru pamięci już przydzielonego innemu programowi 
lub systemowi operacyjnemu. Jeśli zatem uruchomiono 
więcej niż jeden program, dowolny z nich może 
spowodowad zawieszenie całego systemu. 

Tryb chroniony umożliwia adresowanie pamięci w 
większym zakresie niż 1 MB (tryb rzeczywisty), wprowadza 
wiele nowych udogodnieo wspierających 
wielozadaniowośd, takich jak: sprzętowa ochrona pamięci 
(układ MMU), wsparcie w przełączaniu kontekstu 
procesora i wiele innych. 
32-bitowy tryb pracy procesora został określony terminem 
trybu chronionego (ang. protected mode). Nazwa wywodzi 
się stąd, że programy działające w tym trybie otrzymują 
własny obszar pamięci, przez co nie dochodzi między nimi 
do konfliktów. Tego typu ochrona sprawia, że system jest o 
wiele bardziej stabilny, ponieważ programy zawierające 
błąd nie mogą w prosty sposób zaszkodzid innym 
programom lub systemowi operacyjnemu. Poza tym 
program, który się zawiesił, może byd usunięty z pamięci 
bez szkody dla reszty systemu. 

 

29. Na czym polega technologia MMX? 

Technologia MMX (MultiMedia eXtension technology) operuje na ośmiu 64-bitowych rejestrach danych oznaczonych 
mm0, ..., mm7, stanowiących części 80-bitowych rejestrów FPU. To wyklucza jednoczesne użycie FPU i MMX! Rejestry 
64-bitowe mieszczą spakowane dane np. 2 słowa 32-bitowe, 4słowa 16-bitowe lub 8 słów 8-bitowych. Można 
zatem wykonywad jedną instrukcje od razu na zbiorze danych! Technologia MMX wprowadza 57 nowych rozkazów i 4 
typy danych ukierunkowanych na przetwarzanie danych multimedialnych. Wiele algorytmów obliczeniowych 
wykorzystuje powtarzające się pętle obliczeniowe i obsługuje niewielkie ilości danych. Pętle stanowią poniżej 10% kodu 
aplikacji niejednokrotnie zabierają nawet 90% czasu przetwarzania całego algorytmu. Nowe rozkazy MMX zwiększają 
wydajnośd pracy tych najczęściej wykonywanych funkcji. Ich szczególną cechą jest możliwośd łączenia niewielkich ilości 
danych w większy ciąg, co pozwala na szybsze równoległe wykonywanie obliczeo na wielu porcjach danych. Poprzednio 
przetworzenie pewnego zbioru wymagało wielokrotnego wykonania pojedynczego rozkazu. 
.Należy podkreślid, że technologia MMX to tylko rozszerzenie listy rozkazów procesora. Jeżeli program tych instrukcji nie 
wykorzystuje, to nie mają one żadnego wpływu na wydajnośd. 
Przykłady zastosowao: 
• wyświetlanie grafiki trójwymiarowej: przekształcenia geometryczne, cieniowanie, 
teksturowanie; 

background image

• dekodowanie obrazów JPEG i PNG; 
• dekodowanie i kodowanie filmów MPEG (m.in. wyznaczanie transformat DCT i IDCT); 
• filtrowanie sygnałów: obrazów statycznych, filmów, dźwięku; 
• wyświetlanie grafiki dwuwymiarowej (blue box, maskowanie, przezroczystośd); 
• wyznaczanie transformat: Haara, FFT. 
 

30. Opisz budowę i możliwości układu sprzęgu równoległego 8255. 

Port 8255 jest programowalnym układem wejśd/wyjśd równoległych, zajmuje 4 komórki przestrzeni adresowej (trzy z 
nich to adresy bram, czwarta to adres rejestru sterującego). Moduł został przystosowany do współpracy z magistralą 
procesora 8080 z kontrolerem 8228. Na układ 8255 składają się: 
• trzy 8-bitowe porty (bramy PA, PB, PC) mogące pracowad jako wejścia lub wyjścia 
równoległe; 
• bufor magistrali danych; 
• rejestr sterujący RS (pozwala na określenie sposób działania bram). 
Linie we/wy można łączyd w dwie, trzy lub cztery grupy w zależności od zaprogramowanego trybu pracy. Funkcje 
spełniane przez poszczególne porty, programuje się poprzez przesłanie odpowiednio przygotowanego 8-bitowego słowa 
sterującego z jednostki centralnej do rejestru sterującego (RS). Sam proces programowania modułu polega na wyborze 
jego trybu pracy oraz określeniu statusu każdej z bram (tzn. czy ma pracowad jako wejście czy jako wyjście). Przesył 
danych między CPU a układem 8255 odbywa się poprzez szynę danych. Standardowe sygnały przekazywane między 
modułem sprzęgającym a procesorem to: 
- 8-bitowa dwukierunkowa magistrala danych 
- wejścia RD/WR - sterowanie kierunkiem przepływu danych; 
- wejścia A0 oraz A1 adresują źródła danych lub miejsce przesłania (PA, PB, PC, RS); 
- wejście wybierania układu 
- RESET – zerowanie układu 
 

31. Na czym polega idea układu programowalnego np. portu we/wy czy zestawu liczników? 

Układ programowalny to taki układ, którego fizyczna struktura wewnętrzna może byd zmieniana pod wpływem róznych 
czynników. W wyniku zmian struktury zmieniają się właściwości elektryczne tego układu, a co za tym idzie, także 
realizowane funkcje. Istnieje kilka typów układów programowalnych: 

jednokrotnie 

programowalne 

EPROM 

EEPROM 

w wewnętrznej 
strukturze tych 
układów 
zmieniana jest struktura 
ścieżek metalizacji 
poprzez ich przepalanie 
(niszczenie) lub 
tworzenie przez 
przepływ 
odpowiedniego prądu. 
Dzięki temu możemy 
zaprojektowad 
niemalże dowolną 
ścieżkę połączeo 
pomiędzy 
poszczególnymi 
elementami w układzie. 
Układ taki można 
zaprogramowad jedynie 
raz. 

zmiana struktury polega nie na przepalaniu 
ścieżek połączeo 
lecz na zmianach napięcia progowego 
tranzystorów w bramkach. W tego typu 
układach stosowane są tranzystory z podwójną 
bramką (pływającą). Pomiędzy 
kanałem a właściwą bramką jest odizolowany 
obszar polikrzemu, który posiada 
nieskompensowany ładunek, który wpływa na 
napięcie progowe tranzystora. Jak 
wiadomo napięcie progowe tranzystora 
decyduje o tym, dla jakich wartości napięd 
będzie on włączany. Manipulację ładunkiem 
nieskompensowanym uzyskuje się 
poprzez wstrzeliwanie wysokoenergetycznych 
elektronów ze złącza dren-podłoże. 
Kasowanie takie układu wykonuje się przez 
naświetlanie struktury światłem 
ultrafioletowym. Dzięki zachodzącemu zjawisku 
fotoelektrycznemu elektrony mogą 
opuścid bramkę izolowaną. 

zasada działania jest identyczna jak 
układów EPROM, 
jednak to transportu elektronów do 
pływającej bramki wykorzystywane jest 
zjawisko 
tunelowania nośników z kanału 
tranzystora. Kasowanie układu odbywa się 
elektrycznie, przez przyłożenie 
odpowiedniego napięcia do bramki. 
Najprostszą strukturą układu PLD 
(Programable Logic Device) jest struktura 
matrycy bramkowej AND-OR. Matryca taka 
posiada programowalną macierz 
bramek AND oraz stałą (w układach PAL - 
Programable Array Logic) lub także 
programowalną (w układach PLA - 
Programable Logic Array) macierz bramek 
OR. 
Przewaga układu PLA nad PAL jest taka, że 
każda bramka AND może byd 
połączona z każdą bramką OR. 

background image

 
 

32. Czym różnią się słowa sterujące typu inicjującego i rozkazy wykonawcze? Jak są one odróżniane? 

Słowo sterujące określa tryb pracy układu, oraz czy dany port ma pracowad jako wejście, czy jako wyjście. Rozkaz 
wykonawczy natomiast ustawia pojedyncze bity na wyjściach układu. Słowa te rozróżnia się przy pomocy rejestru 
flagowego. 
 

33. Na czym polega tryb pracy bitowej portu C w układzie 8255? 

Polega na ustawianiu pojedynczych bitów portu C za pomocą słowa wykonawczego. Możliwe jest selektywne ustawianie 
bądź zerowanie poszczególnych bitów tego rejestru. Do tego celu służy zapis do rejestru kontrolnego słowa z 
wyzerowanym najstarszym bitem D7. 
  Bit 7 – zawsze “0”. 
  Bity D6, D5, D4 – nie używane (dowolna wartośd, zazwyczaj “0”), 
 

Kolejnośd  Wybrany bit 

Linia 

Schemat 

000 

D0 

PC0 

 

001 

D1 

PC1 

010 

D2 

PC2 

011 

D3 

PC3 

… 

… 

… 

111 

D7 

PC7 

 
Selektywna modyfikacja bitów rejestru C możliwa jest tylko w trybie 0 pracy rejestrów PA lub PB. Jeżeli np. rejestr PA 
pracuje w trybie 1 lub 2, a rejestr PB w trybie 0 to można modyfikowad jedynie bity rejestru PCb (z grupy B) i odwrotnie, 
dla PB pracującego w trybie 1, a PA w trybie 0, modyfikowalne są tylko bity PCa. 
 

34. Przedstaw przebiegi czasowe ilustrujące proces wymiany informacji z potwierdzeniem. 
INTR- żądanie przerwania, 
~ACK- potwierdzenie, 
~STB - wejściowy sygnał 
strobujący, 
IBF – wejściowy bufor pełny, 
~OBF – wyjściowy bufor 
pełny, 
~WR – zapis, 
~RD – odczyt. 

 

 

 
 
 

background image

35. Przedstaw budowę i ideę działania układu programowanych liczników 8254. 

 

 

Możliwośd działania w 6 trybach pracy, które ustawia się przy pomocy wejśd D7-D0. Za pomocą RD/WR odczytujemy, 
bądź wpisujemy coś z/do liczników. Wybór licznika następuje poprzez A0,A1. Taktowanie liczników - CLK 0-2, wartości 
liczników – OUT 0-2, GATE 0-2 startowanie, blokowanie, zatrzymywanie licznika. Dzięki różnym trybom pracy układ daje 
nam możliwośd wygenerowania licznika zarówno w górę, jak i w dół lub sygnał cykliczny z opóźnieniem. By nie popełnid 
błędu należy odczytywad wartośd z rejestru, w którym zapisaliśmy chwilową wartośd licznika, a nie z samego licznika. 
 

36. Opisz ideę sprzęgania programowalnego układu z magistralą systemową (na przykładzie 8255 lub 8254). 

Sprzęganie układu programowalnego z magistralą ma sens wtedy, gdy zależy nam na dużej prędkości działania. Łączy się 
to ze złożonym hardwar'em, a z drugiej strony -nieskomplikowanym softwar'em. Najprościej rzecz mówiąc, układ 8255 
zawiera trzy uniwersalne 8−bitowe porty (PA, PB i C), z których każdy może byd skonfigurowany jako wejście, wyjście a w 
pewnych trybach spełniad rolę mieszaną, nawet z możliwością generowania przerwao do procesora. 
Dodatkowo, oprócz wspomnianych rejestrów portów PA, PB i PC układ 8255 zawiera tzw. czwarty rejestr konfiguracyjny, 
dzięki któremu możliwe jest ustalenie, jak ma pracowad cały układ, czy np. port PA ma byd ustawiony jako wejściowy, czy 
wyjściowy itp. 
-wejścia RD/WR - sterowanie kierunkiem 
przepływu danych, 
-wejścia A0 oraz A1 adresują źródła danych lub 
miejsce przesłania (PA, PB, PC, RS), 
- 8-bitowa dwukierunkowa magistrala danych (D0-
D7) – przesyła się przez nie słowa sterujące lub 
wykonawcze, czyli programuje tryby pracy. 
 

 

background image

 

 

37. Opisz trzy wybrane tryby pracy programowanych liczników układu 8254. 

Licznik 2 może byd programowany przez użytkownika w 6 różnych trybach. Typową wartością częstotliwości na 
wejściach zegara jest 1,19 MHz, przetwarzane przez generator taktowania, znajdujący się na płycie głównej. Wejście 
GATE licznika 2 sterowane jest przez bit 1 portu B układu PIO. 
Tryb 

Nazwa 

Opis 

interrupt on 
terminal count 

Wyjście licznika (Output Interrupt) określone zostaje po otrzymaniu Control Word w 
odniesieniu do wartości Low. Liczenie rozpoczyna się po ustaleniu stanu licznika, a taktowane 
jest przez wejście CLK. Przy tym wartośd wyjścia ustawiana jest na pozycji High, kiedy tylko stan 
licznika osiągnie zero. W takiej sytuacji wyjście jest zamknięte do momentu, w którym 
zdefiniowany zostanie kolejny stan licznika Licznik może byd zatrzymany, jeśli na wejściu GATE 
ustalona zostanie wartośd Low. Stan licznika zostaje zachowany, po czym - przez ustawienie 
wartości High - liczenie jest kontynuowane. 

programmable 
one - shot 

Początkowo dla wyjścia (OUTPUT) określona jest wartośd High. Licznik uruchamia się przez 
wzrastający sygnał na wejściu GATE (TRIGGER), natomiast wyjściu przypisana jest wartośd Low. 
Po uzyskaniu stanu zero licznik zatrzymuje się, a wyjście ponownie ustawiane jest na High. Przy 
pomocy wzrastającego sygnału GATE (TRIGGER) można ponownie ustalid stan licznika. Jeśli 
impuls pojawi się na wejściu GATE, zanim stan licznika osiągnie wartośd "zero", to nie ma on 
żadnego wpływu na aktualnie wyprowadzoną funkcję. Bowiem nowa wartośd jest uaktywniana 
dopiero przez kolejny impuls, czyli po zakooczeniu operacji przeprowadzanych aktualnie przez 
licznik. 

rate generator 
- dzielnik 
częstotliwości) 

Podczas występowania sygnału CLK, na wyjściu ustalona jest wartośd Low. Okres od jednego 
pojawienia się sygnału na wyjściu do następnego odpowiada początkowemu stanowi licznika. 
Jeśli rejestr licznika jest na nowo uruchamiany pomiędzy kolejnymi impulsami, wywołana przez 
to zmiana zaczyna oddziaływad dopiero później. Podczas cyklu zerowego stan licznika określany 
jest ponownie. Następnie - po jego uruchomieniu - rozpoczyna się liczenie. Wejście GATE może 
byd wykorzystywane do synchronizacji licznika. Poprzez sygnał opadający (wcześniej 
wzrastający) na wejściu GATE (Reset) przerywany jest proces liczenia, a na wyjściu pojawia się 
wartośd High. Sygnał wzrastający na wejściu GATE uruchamia kolejny cykl. 

generator z 
symetrycznym 
sygnałem 
wyjścia 

odpowiada w zasadzie trybowi 2, z tą tylko różnicą, że częstotliwośd dzielona jest przez dwa, 
przez co osiągany jest niemal identyczny stosunek sygnałów High i Low. Wyjściu przeznaczona 
jest tylko tak długo wartośd High, aż osiągnięta zostanie połowa wartości początkowej licznika. 
Następnie na drugą połowę cyklu wyjściu przyporządkowana zostaje wartośd Low. Przy 
nieparzystych wartościach początkowych na wyjściu, wartośd High pozostaje o jeden takt 
dłużej, niż wartośd Low, po czym automatycznie uruchamiany jest następny cykl 

 

38. Przedstaw architekturę programowalnego układu portów równoległych 8255. 

background image

 

 

39. Opisz znaczenie linii CLK, GATE i OUT w programowym liczniku z układu 8254? 

CLK – wejście zegarowe (Podajemy zasilanie taktem), GATE – wejście bramkujące (Startuje, zatrzymuje, blokuje liczenie) 
oraz OUT – wyjście. 
 

40. Porównaj przeznaczenie rejestrów: rejestr rozkazów i wskaźnik (licznik) rozkazów w mikroprocesorze. 

Wskaźnik (Licznik) rozkazów (instruction pointer) (program counter) - zawiera adresy komórki pamięci w której 
przechowywany jest kod rozkazu przeznaczony do wykonania jako następny. Rejestr rozkazów (instruction register) - 
zawiera kod aktualnie wykonywanego rozkazu.  
 

41. Co ogranicza wielkośd przestrzeni adresowej mikroprocesora? Podaj przykłady. 

Wielkośd przestrzeni adresowej ogranicza szerokośd magistrali adresowej mikroprocesora, która dla modelu 8086 
wynosi 20bitów. To pozwala na zaadresowanie do 1MB pamięci operacyjnej i 4GB przy pomocy segmentacji. 
 

42. Porównaj cykl pracy prostego mikroprocesora I8080 i mikroprocesora z rodziny x86. 

Cykl pracy I8080 
1. Pobranie z pamięci operacyjnej kodu rozkazu począwszy od adresu umieszczonego w 
liczniku rozkazów IP. 
2. Dekodowanie rozkazu i przygotowanie stanu procesora do wykonania rozkazu. 
3. Wykonanie rozkazu, zmiana zawartości pamięci lub rejestrów procesora. 
4. Modyfikacja licznika rozkazów o liczbę zależną od długości rozkazu i jego typu. 
Podstawowa różnica w cyklu pracy mikroprocesora z rodziny x86 występuje w pierwszym kroku ze względu na kolejkę 
rozkazów. Kod rozkazu zostaje pobrany z pamięci operacyjnej do kolejki rozkazów i dopiero stąd trafia do 
rejestru rozkazów procesora. 
 

background image

43. Podaj przykład algorytmu wymiany potwierdzeo podczas wymiany informacji pomiędzy nadajnikiem i 

odbiornikiem informacji. 

 

44. Do czego służą rejestry zatrzaskowe zawarte w układzie 8254? Odpowiedź uzasadnij. 

Po wyzwoleniu odpowiedniego rozkazu zatrzaśnięcia, rejestry zatrzaskowe zapamiętują aktualny stan licznika, aż do 
odczytania tego stanu przez procesor. Rejestry te są 8bitowe, zapamiętują 8 starszych i 8 młodszych bitów licznika 
16bitowego. Dzięki temu procesor może odczytad stan 16bitowego licznika poprzez 8bitową szynę danych. 
 

45. Na czym polega idea stronicowania pamięci w procesorach z rodziny x86? 

Idea stronicowania pamięci w procesorach z rodziny x86 polega na tym, iż została ona wprowadzona przez coraz większe 
zapotrzebowanie na pamięd, lecz by móc ją obsłużyd zaistniała potrzeba wprowadzenia nowszych technik zarządzania 
pamięcią -> stronicowanie pamięci. Jeśli włączone jest stronicowanie, wówczas cała pamięd (4 GB) dzielona jest na bloki 
– strony o rozmiarach np. 4 kB (w procesorach Pentium i nowszych możliwe jest także używanie stron o rozmiarach 4 
MB). Gdy program odwołuje się do pamięci, podaje adres właściwej komórki pamięci. Adres ten jest 32-bitową liczbą, 
która składa się z trzech części: 
- indeks w katalogu stron (liczba 10-bitowa), 
- indeks w tablicy stron (liczba 10-bitowa), 
- przesunięcie w obrębie strony (liczba 12-bitowa). 
Katalog stron zawiera wskaźniki do tablic stron, tablice stron przechowują adresy fizyczne stron. (System operacyjny 
może zarządzad wieloma katalogami i tablicami stron). Zatem pierwsza częśd adresu wybiera z katalogu stron tablicę 
stron. Druga częśd adresu wybiera pozycję z tablicy stron, która wyznacza fizyczny adres konkretnej strony. Przesunięcie 
jest adresem lokalnym w obrębie wybranej strony. Ostatecznie adres fizyczny, na który zmapowano adres logiczny, 
wyznaczany jest z dwóch składników: adresu fizycznego strony i przesunięcia. 
 

46. Co jest przyczyną a co celem wprowadzenia segmentacji pamięci w systemach mikroprocesorowych? 

Celem segmentacji pamięci jest rozdzielenie obszarów pamięci przeznaczonych dla programu, danych i stosu. Pozwala to 
na sprzętową ochronę pamięci przy pracy wielozadaniowej. 
Cel: przyspieszenie pracy komputera dzięki operowaniu krótszymi adresami 

background image

Przyczyna: Możliwośd operowania przez procesor jedynie na 16 bitach danych jednocześnie 
( 16 bit = 1 segment) 
 

47. Co to jest tablica wektorów przerwao i do czego służy? 

Elementy tej tablicy zawierają właściwe adresy początków programów obsługi przerwao. Tablica wektorów przerwao 
jest strukturą umieszczoną w pamięci operacyjnej komputera. Każda pozycja tej tablicy związana jest z dokładnie jednym 
przerwaniem i zawiera adres komórki pamięci, w której znajduje się początek (kod pierwszej instrukcji) programu 
obsługującego to przerwanie. Po dokonaniu arbitrażu sterownik przerwao podaje na swoim wyjściu danych numer 
przerwania, które ma byd obsłużone. Mikroprocesor pobiera ten numer i następnie przy jego pomocy odczytuje adres 
pocztu programu obsługi przerwania, który ma zostad wykonany. Adres ten, po zapamiętaniu informacji niezbędnych do 
powrotu do przerwanego programu głównego, jest ładowany do określonych rejestrów procesora, w tym licznika 
rozkazów. Powoduje to wykonanie skoku do programu obsługi przerwania umieszczonego pod adresem odczytanym z 
tablicy wektorów przerwao.  Po zrealizowaniu wymiany następuje powrót z programu obsługi przerwania do programu 
głównego, który jest kontynuowany. Procesor obsługuje polecenie przerwania przy użyciu tablicy wektorów przerwao, 
która znajduje się w początkowych 1024 bajtach pamięci . Każdy element tablicy jest 32-bitowym adresem typu 
segment-przesunięcie, który wskazuje procedurę systemu operacyjnego. Rzeczywiste adresy w tablicy zmieniają się w 
zależności od komputera. PS. Tablica zajmuje 1024B=32b*256, (1B=8b), czyli standardowych przerwao jest tylko 
256 Na szczęście każde przerwanie ma wiele funkcji. 
Przykład: 
INT 10h to instrukcja żądania usługi grafiki, tak więc odnaleziony w wektorze przerwao dla numeru 10h adres to 
F000:F065 pod którym rozpoczyna się obsługa przerwania zakooczona instrukcją RETI, która powoduje powrót do 
wykonania kolejnego polecenia w bieżąco wykonywanym programie. 
 

48. Wymieo i opisz przeznaczenie rejestrów jednostki centralnej procesora z rodziny x86. 

Jednostka Centralna 
Jednostka Wykonawcza 

Jednostka Interfejsowa 

Rejest

ry o

gól

n

ego

 p

rz

ez

n

acze

n

ia

 

Rejestr znaczników - Bezpośrednio do jednostki 
arytmetyczno-logicznej dołączony jest 16-bitowy 
rejestr znaczników (rejestr flag). Znajdujące się w nim 
flagi zostały podzielone na dwie grupy, tj. kontrolną i 
arytmetyczną. Flagi arytmetyczne dostarczają 
dodatkowych informacji na temat wyniku ostatniej 
operacji wykonanej przez jednostkę arytmetyczno-
logiczną. Flagi kontrolne wpływają na sposób pracy 
mikroprocesora. Mniej znaczący bajt rejestru 
znaczników odpowiada rejestrowi znaczników 
mikroprocesora 8080/8085. Cztery najbardziej 
znaczące bity pozostają nieużywane. Przykładowe 
znaczniki to: SF (sign flag) - znacznik znaku, ZF (zero 
flag) - znacznik zera, PF (parity flag) - znacznik 
parzystości, AF (auxiliary carry flag) - znacznik 
przeniesienia połówkowego (pomocniczego), CF 
(carry flag) - znacznik przeniesienia, OF (overflow flag) 
- znacznik nadmiaru, IF (interrupt flag) - znacznik 
przerwao, DF (direction flag) – znacznik kierunku, TF 
(trap flag) - znacznik pułapki umożliwiającej pracę 
krokową. 

Licz

n

ik r

o

zkazó

(In

struc

ti

o

n

 

P

o

in

ter 

– 

IP)

 

16-bitowy rejestr, którego zawartośd służy do 
obliczania adresu fizycznego następnego 
słowa rozkazu do pobrania z pamięci. Stanowi on 
rejestr indeksowy dla rejestru CS 
wyznaczającego segment z kodem programu. 
Jego zawartośd jest automatycznie 
inkrementowana 
po pobraniu każdego bajtu rozkazu (w przypadku 
pobrania słowa jego wartośd wzrasta o 2). 
Programista ma możliwośd zmiany zawartości 
licznika rozkazów poprzez zastosowanie rozkazu 
skoku. 

 

background image

Reje

stry

 wsk

n

ik

o

w

i in

d

ek

so

we

 

Rejestry arytmetyczne 
Są to cztery 16-bitowe rejestry ogólnego 
przeznaczenia: AX, BX, CX, DX. Każdy z tych rejestrów 
może również działad jako dwa niezależne rejestry 8-
bitowe: 
• AX lub AH, AL 
• BX lub BH, BL 
• CX lub CH, CL 
• DX lub DH, DL 
 
AX – Akumulator (Accumulator) 
bezpośrednio współpracuje z jednostką 
arytmetyczno-logiczną, przechowuje wartości 
obliczeniowe 
BX – Baza (Base) 
używany do adresowania argumentu, znajdującego 
się w pamięci, stanowiąc bazę do obliczania adresu 
CX – Licznik (Counter) 
używany jako licznik w operacjach łaocuchowych oraz 
pętlach 
DX – Dane (Data) 
jest wykorzystywany w niektórych operacjach 
arytmetycznych do przechowywania 
części argumentu lub wyniku operacji (mnożenie i 
dzielenie 16- bitowe). Zawiera on także adres 
urządzenia w operacjach wejścia/wyjścia. 
 
Rejestry wskaźnikowe i indeksowe 
Są to 16-bitowe rejestry adresowe: SP, BP, SI, DI. Ich 
głównym zadaniem jest wskazywanie miejsca 
w pamięci, w którym znajdują się argumenty rozkazu. 
Wykorzystywane są w adresowaniu 
indeksowym, bazowym oraz indeksowo-bazowym. 
Można ich również używad do przechowywania 
argumentu bądź wyniku operacji. Podobnie jak w 
przypadku rejestrów arytmetycznych, rejestry 
adresowe mają nazwy zależne od funkcji jaką pełnią: 
 
SP – wskaźnik stosu (Stack Pointer) 
BP – wskaźnik bazy (Base Pointer) 
SI – rejestr indeksowy źródła (Source Index) 
DI – rejestr indeksowy przeznaczenia (Destination 
Index) 

Reje

stry

 s

egm

ent

o

we

 

Są to 16-bitowe rejestry, dostępne dla programisty, 
których zawartośd służy do obliczania adresu 
fizycznego komórki pamięci. Rejestry te zawierają 
adres początkowy danego segmentu pamięci. 
Mikroprocesor w zależności od rodzaju segmentu 
pamięci, do którego chce się odwoład, wykorzystuje 
odpowiedni z rejestrów. Programista ma możliwośd 
zmiany automatycznie wykorzystywanego rejestru 
poprzez umieszczenie odpowiedniego prefiksu przed 
rozkazem, dla którego zmiana ma zostad zastosowana. 
• CS – rejestr segmentowy programu (Code Segment 
register) Zawartośd tego rejestru wyznacza początek 
aktualnie używanego segmentu programu. Wartośd ta 
wykorzystywana jest do obliczania adresu fizycznego 
kolejnego rozkazu do pobrania z pamięci. 
• DS – rejestr segmentowy danych (Data Segment 
register) Zawartośd tego rejestru wyznacza początek 
aktualnie używanego segmentu danych. Wartośd ta 
wykorzystywana jest do obliczania adresu fizycznego 
argumentu lub wyniku aktualnie wykonywanego 
rozkazu. Wyjątek stanowią rozkazy łaocuchowe, w 
których zawartośd tego rejestru służy jedynie do 
obliczania adresu źródła danych. 
• SS – rejestr segmentowy stosu (Stack Segment 
register) Zawartośd tego rejestru wyznacza początek 
aktualnie używanego segmentu stosu. Wartośd ta 
wykorzystywana jest do obliczania adresu fizycznego 
komórki pamięci, na którą wskazuje wskaźnik stosu 
(rejestr SP). 
• ES – rejestr segmentowy dodatkowy (Extra Segment 
register) Zawartośd tego rejestru wyznacza początek 
aktualnie używanego dodatkowego segmentu danych. 
Wartośd ta wykorzystywana jest do obliczania adresu 
fizycznego przeznaczenia dla operacji łaocuchowych 
(np. rozkazu przenoszenia bloku danych).