,
[ Pobierz całość w formacie PDF ]
nych podaje się również liczbę cykli zegarowych wykonania roz- kazów w rozmaitych trybach adresowania. Jest to miara czasowa pracy mikroprocesora, której mały fragment wymagał tak długie- go opisu. A trwało to tym razem dwie milionowe części sekundy. No, może nieco więcej. Może np. na mikrochwilę przerwały pracę procesora urządzenia wyprowadzające obraz na ekran. Wiele jest przyczyn tego, co nazywamy przerwaniami. Za każdym razem 6502 kończy wykonanie rozkazu, który ma na warsztacie, po czym głos oddaje innym urządzeniom, by po zakończeniu przerwania wznowić pracę. wiczenia x 1. Jakie rejestry ma 6502? 2.6 Koncepcja stron pamięci Mikroprocesor 6502 traktuje pamięć komputera jako swego rodzaju książkę podzieloną na s t r o n y. Stronę pamięci sta- nowi fragment o długości 256 bajtów, a numerację stron zaczyna się od zera. Tak więc strona zerowa obejmuje komórki o adresach 0-255, pierwsza - o adresach 256-511, druga - o adresach 512- 767 itd. Znacznie jaśniejsze stanie się to, gdy początkowe ad- resy kolejnych stron zapiszemy w hex. Będą to adresy: 0,100,200,300,400,500,600,...,1000,1100,...,2000 itd. Jeżeli z dowolnego adresu zapisanego w hex odrzucimy dwie ostatnie cyfry, otrzymamy numer strony. Tak więc MSB adresu oznacza numer strony, a LSB - położenie komórki na stronie. W przypadku części rozkazów JM przejście na inną stronę wydłuża czas wykonania o jeden cykl maszynowy. wiczenia x 1. Jaki jest najwyższy możliwy numer strony pamięci? --- 43 --- 2.7 Strona zerowa i stos 6502 wykorzystuje do swych celów trzy odcinki przestrzeni adresowej komputera: stronę zerową, stronę pierwszą oraz sześć najwyższych adresów w pamięci. Te ostatnie wiążą się z obsłu- gą przerwań, co będzie omówione przy ich przedstawianiu. Kluczowe znaczenie ma strona zerowa, ponieważ jej wykorzy- stanie jest absolutnie konieczne w pięciu ważnych trybach ad- resowania 6502, pozwala tworzyć kod szybszy i bardziej pamię- ciooszczędny. Zalety te sprawiają, że z komórek na stronie ze- rowej szeroko korzysta system operacyjny, a także interpreta- tor Basicu. Użytkownikowi pozostaje niewiele miejsca i musi nim gospodarować racjonalnie, umieszczając na stronie zerowej najczęściej wykorzystywane dane, w tym adresy. W każdym komputerze opartym na 6502 wykorzystanie strony zerowej rozwiązane jest odmiennie, toteż omówimy je na przyk- ładzie Atari. Oto ogólny schemat strony zerowej Atari (adresy w hex): 00-7F - wykorzystywane przez system operacyjny 80-CA - wykorzystywane przez Basic CB-D1 - dostępne dla użytkownika (203-209 dec) D2-D3 - zarezerwowane dla Basicu D4-FF - wykorzystywane przez pakiet operacji zmiennopo- zycyjnych OS. Z mapy tej wynika, że przy korzystaniu z Basicu użytkow- nikowi pozostaje tylko 7 bajtów do dyspozycji przy tworzeniu podprogramów w JM. W rzeczywistości sytuacja jest korzystniej- sza, ponieważ OS wykorzystuje szereg komórek tylko przy zimnym starcie komputera, np. bajty 0 i 1. Do wykorzystania są komór- ki 1D-1F, jednak po naciśnięciu RESET ulegają wyzerowaniu. Po wyłączeniu Basicu, programujący może bezpiecznie wy - korzystać adresy 80-D3 czyli 84 ($54) bajty. Ponieważ w prog- ramach w JM można zastąpić operacje zmiennopozycyjne znacznie szybszymi całkowitoliczbowymi, w każdym takim przypadku zwal- niają się jeszcze bajty D4-FF, czyli dostępna staje się cała górna połowa strony zerowej. A to już jest niemało. Na stronie pierwszej mieści się s t o s 6502. Przyjrzy- my się bliżej tej ważnej strukturze. --- 44 --- Czym jest stos? Stanowi on fragment pamięci operacyjnej komputera przeznaczony do czasowego przechowywania danych, a nacechowany szczególną organizacją: dostępny jest mianowicie tylko obiekt, który był wprowadzony na stos jako ostatni. Mó- wimy o nim, że znajduje się na szczycie stosu. Stos można porównać do talii kart położonej koszulkami do dołu na stole. Widzimy zawsze tylko jedną kartę znajdującą się na szczycie. Dopiero po jej zdjęciu widzimy następną, a potem kolejno dalsze. Jeżeli kilka kart położymy kolejno na talii, to zdejmować je potem będziemy w o d w r o t n e j kolejności. Inne porównanie: stos przypomina działaniem maga- zynek pistoletu, a także stos talerzy ułożonych jeden na dru- gim. Taka zasada działania stosu określana jest po angielsku mianem LIFO - Last In First Out, czyli: ostatni wszedł, pier- wszy wyszedł. Stosowa organizacja pamięci znana jest i wy- korzystywana bardzo szeroko.Np. język programowania Forth wszystkie operacje na liczbach wykonuje za pośrednictwem sto- su. Stos dla swoich potrzeb buduje również Basic. Zasadnicza różnica między tamtymi stosami, a omawianym tutaj polega na tym, że gdy wcześniej wspomniane tworzone są z pomocą programów, to stos 6502 zarządzany jest sprzętowo przez mikroprocesor, jakkolwiek nie znajduje się w jego wnęt- rzu, lecz w pamięci. 8-bitowy wskaznik stosu z dziewiątym bitem ustawionym na stałe ogranicza rozmiary stosu do 256 bajtów. Wymaga to umie- jętnego posługiwania się stosem, lecz z drugiej strony przys- piesza operacje na nim. Można wykonać dwa zasadnicze typy ta- kich operacji: zdjąć liczbę ze stosu (ang. pull) lub wstawić ją na stos (ang. push). W 6502 pierwszą czynność wykonuje m. in. PLA-(pull accumulator from stack - zdejm liczbę ze stosu do akumulatora), a drugą m.in. PHA-(push accumulator on stack - wstaw akumulator na stos). 6502 kontroluje stos z pomocą wskaznika stosu S, który zawsze wskazuje pierwszą wolną pozycję na stosie. Początkową wartością S nie jest jednak 256, lecz 511. Należy bowiem pa- miętać, że stos 6502, jak zresztą większość wykorzystywanych --- 45 --- [ Pobierz całość w formacie PDF ] |
Odnośniki
|