, Jan_Ruszczyc_ _Asembler_6502(poprawiona)_SOETO 

[ 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 ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • osy.pev.pl