Celem ćwiczenia jest pokazanie następującego działania up:
przejście do trybu wirtualnego połączone z przełączeniem zadań mechanizmu wybranych wyjątków trybu wirtualnego
Układ 80386 po wyzerowaniu pracuje w trybie rzeczywistym, w którymzachowuje się tak jak 8086 (tylko „szybszy”) tj. ma dostęp tylko do IH-bajtu przestrzeni adresowej. Podobnie jak 8086 rozpoczyna pracę od lokacji (FFF)FFFFO. Jest tam zapisany rozkaz skoku międzysegmentowego:
EA 00 00 00 04
kod operacyjny młodszy bajt IP starszy bajt IP młodszy bajt CS starszy bajt CS
Po zsumowaniu (z przesunięciem) zawartości Csi IP powstaje adres spod którego pp będzie kontynuował program:
IP 0 0 0 0 (tzw. offset czyli przesunięcie)
CS_0 4 0 0 (tzw. segment)
00004000
Po wykonaniu pierwszego skoku pp 80386 zeruje linie adresowe A31-A20 (na początku były tam ustawione jedynki). Rozkaz skoku międzysegmentowego jest odczytywany z modułu bootstrap (16 bajtów nastawianych na przełącznikach).
W celu obserwacji działania programu należy na konsoli przycisnąć reset „reset systemu” a następnie krokować przyciskiem „step” obserwując stan szyny adresowej, danych, linie RB, WR i LOCK (blokady zwolnienia magistrali). Ponieważ w pp Intela najmłodszy adres jest związany z liniami B7-D4 32-bitowej szyny danych, więc kolejne bajty należy czytać od prawej do lewej
D31 DO
RD |
FFFFFFFO |
00 |
00 |
00 |
EA |
-> |
> |
-► |
!► | ||
RD |
FFFEFFF4 |
00 |
00 |
00 |
04 |
RD |
FFFFFFFS |
w |
w |
1 t |
, f |
ł |
4 |
4 |
4 | ||
X=B |
X=A |
X=9 X=8 |
cykl ten wynika z działam a kolejki, tzn. ąp zanim rozpozna skok pobiera sekwencyjnie dalej program
bajty o adresach FFFFEFFX (konsola, tak jak i y,p podaje adres z kwantem “4“, o aktywności poszczególnych bajtów szyny danych informują linie zezwoleń ER (aktywne "zerem")
A A__A A
BE3 BE2 BE1 BEO
Sygnały te można zaobserwować na czołówce modułu procesora. Ponieważ jednak pracuje on na magistrali wg standardu KME, to konsola podaje także inne sygnały informujące o aktywności bajtów szyny danych: LWORD, Al, DS1, DS0. Przykładowo zapalenie się wszystkich odnośnych diod LED oznacza pełne wykorzystanie 32-bitowej szyny danych. Inne przypadki wykorzystania szyny danych będą objaśnione na bieżąco w momencie wystąpienia.
Od lokacji 00004000 rozpoczyna się program (pp oczywiście w trybie rzeczywistym) którego zadaniem jest wprowadzenie pp w tryb wirtualny. W trybie tym pp jest przystosowany do pracy wielozadaniowej a operuje na tzw. segmentach. Rozróżniamy segmenty kodu (programu), stosu i danych. Każdy segment dysponuje własnym opisem w tzw. tablicy deskryptorów. Opis ten precyzuje czy dany segment znajduje się w pamięci operacyjnej