3.
zauwaz. ze up po ponownym pobraniu bajtów spod lokacji 4010,14,18,1C kolejność zaburzona ze względu na skok ) i odczytanie sąsiedniej* linii (lokacje 4020.24,28,2C ) zaprzestaje współpracy z magistralą.
Przekrokuj przy wyciśniętym KEN ( LED na czołówce CPU zgaszony ) - co zauważyłeś?
Aby sprawdzić, czy pp ma możność zapisania 4 instrukcji o takim samym dolnym adresie (kwant 2kB jzmodyfikuj podany program umieszczając 4 skoki bezwarunkowe.
- adres 4014 4814 5014 5814
KO skoku bezwarunkowego to E9 zaś przesunięcie jest zawsze o 3 mniejsze ponieważ długość tego rozkazu wynosi 3 bajty.
Adres 4014 XX,07,FD,E9
4814 07,FD,E9
5014 07,FD,E9
Przesunięcie względne o 6kB to E800. Po odjęciu „3” uzyskujemy E7FD. Tak więc pod lokacjom 5814 wpiszemy:
<-1
5814 XX,E7,FD,E9
Przekrokuj i zaobserwuj, że pp po odczytaniu linii 4014, 10, 1C, 18 itd. dla kolejnych skoków uzupełni jeszcze linie sąsiednie tj. 4020, 24, 28, 2C itd. i rozpocznie pobieranie kodu wyłącznie z pp przestając sterować magistralą.
4. Jeżeli teraz dodamy jeden skok:
...to mimo, iż program wykonywany składa się tylko z 15 bajtów a obszar pp to 8kB, pp nie będzie mógł korzystać z pp. Uzupełnij i zmodyfikuj program:
5814 |
XX,07,FD,E9 |
(taki sam skok o 2kB) |
6014 |
XX,DF,FD,E9 | |
(bo ostateczne przesunięcie o 2kB |
F800 | |
4kB |
F000 | |
6kB |
Ę800 | |
8kB |
E000 a po odjęciu 3: DFFD ) |
*pp sfara się umieścić w kolejce także linię sąsiednią ( adres dolny kolejki) ze względu na niemożliwość wystąpienia instrukcji na przełomie 16-bitowych „porcji” - Intel nie posiada wyrównania binarnego adresów a rozkazy są o dowolnej długości: 1,2,3,4,5...-bajtowe).