Realizacja programu wejście w tryb wirtualny:
tak będą oznaczone cykle odczytu programu
RD
RD
RD
RD
adres dane
0000 4000 0006C766 4004 0000FF45 4008 0406C70C 400C 0F000045
objaśnienia (porównuj na bieżąco z zapisem programu)
80386 jest jeszcze w trybie rzeczywistym gdzie domyślnym rozmiarem argumentu jest 16-bitowe słowo. Aby zmienić rozmiar na przeciwny tj. na 32-bity należy przed odnośnym rozkazem umieścić przedrostek "66".
Ponieważ rejestr GDTR można załadować tylko z pamięci dlatego dlatego też dane do GDTR wpisujemy do pamięci (lokacje od 4500-4505), a potem rozkaz LGDT przenosi je w miejsce docelowe.
4504
-0000
4500
v.
4504
J
ulokowane w pamięci danych ładowanych potem do GDTR
WR
WR
<— w tym cyklu pp wykorzystuje tylko połowę swojej szyny danych (dolną). Aktywne są tylko sygnały DS0 i DS1 na magistrali VME (zaobserwuj która linia BE jest aktywna)
Każda linia magistrali dysponuje na końcach dzielnikami rezystorowymi, które przy braku jej sterowania otrzymują logiczny stan wysoki. Dlatego też konsola na niewykorzystanej części szyny danych (—) wyświetla oczywiście FFFF.
RD |
4010 |
45001601 |
doczytanie do końca rozkazu LGDT | |
RD |
4014 |
0C0C06C7 |
działanie kolejki (pp pobiera „na zapas” następne 4 bajty programu | |
RD |
4500 |
00FF |
DS0, DS1 |
pp ładuje z pamięci GDTR w |
RD |
4504 |
0000 |
DS0, DS1 |
rporcjach po 2 bajty (prawdopodobnie |
RD |
4500 |
ocoo |
! DS0,DSl,AiJ |
ze względu na zgodność z 16-bitową wersją SX): najpierw wielkość potem górne 2 bajty adresu początku, a na końcu dolne 2 bajty początkowego adresu. |
!: Przy przesłaniach 8 i 16-bitowych magistrala VME wykorzystuje zawsze linie D0-
D15, o tym że są to dane z górnej połowy szyny danych informuje aktywny stan linii Al. Zasada ta wynika ze względów ekonomicznych. Jeśli przesłania magistrali VME nie będą o rozmiarze większym niż 2 bajty dla danej karty oraz korzysta ona z adresacji nie wykraczającej poza A23 to może ona korzystać ze zubożonej części magistrali (brak złącza J2 zawierającego linie D31-D16 i A31-A24)