[ Pobierz całość w formacie PDF ]
Jak działa ten program? Na stronie zerowej znajduje się
tablica złożona z trzech adresów. LDA (CC,X) pobiera wartość
spod pierwszego z nich. Zwiększenie X o 2 powoduje, że EOR
(CC,X) wykonywane jest z liczbą, której położenie pośrednio
wskazuje następny adres zapisany n a s t r o n i e z e-
r o w e j. Wreszcie ponowne powtórzenie tego manewru powodu-
je zapisanie wyniku pod trzecim adresem pośrednio odczytanym
ze strony zerowej. Jest to program nieefektywny, to samo moż-
na zrealizować trzema rozkazami w trybie absolutnym bez inde-
ksowania. Chodziło jedynie o pokazanie metody obliczania ad-
resów. Poglądowo przedstawia ją rysunek 5.1.
W tym trybie do adresu na stronie zerowej n a j -
p i e r w dodawana jest zawartość rejestru X, a p o t e m
spod adresu na stronie zerowej obliczonego w ten sposób od-
--- 102 ---
Strona zerowa
Kod operacji
Adres OP
OP
Rejestr X
+
N OP+N
Wskaznik
RAM
Dane
Rys. 5.1 Adresowanie pośrednie preindeksowane X
czytywany jest efektywny adres, czyli adres ostatecznie wska-
zujący dane. Ponieważ adres na stronie zerowej oblicza się
p r z e d dotarciem do komórek z właściwym adresem, tryb ten
nosi nazwę preindeksowanego, co można przetłumaczyć jako
wcześniej indeksowany czy "przed-indeksowany".
Aatwo zauważyć, że tryb ten ma taką samą wadę, jak omó-
wiony w punkcie 5.5 absolutny wariant: trudno jest na stro-
nie zerowej zmieścić tablicę adresów. Dlatego zdecydowanie
szersze zastosowanie znajduje postindeksacja z pomocą rejest-
ru Y.
W obu trybach dostępne są rozkazy, które należą do naj-
ważniejszych: ADC, AND, CMP, EOR, LDA, ORA, SBC, STA.
5.8 Z rejestrem Y - postindeksowanie
Nieporównanie użyteczniejszy jest tryb z zastosowaniem
rejestru Y, odmienny od poprzedniego i, powiedzmy też sobie,
przejrzystszy. Jak odbywa się postindeksowanie? W tej meto-
--- 103 ---
dzie komórki na stronie zerowej mogą zawierać pojedyńcze adre-
sy, ponieważ cała procedura dodawania zawartości Y odbywa się
dopiero p o ustaleniu pierwszego, wyjściowego, bazowego ad-
resu obszaru. Dlatego tryb ten nosi nazwę postindeksowanego
czyli indeksowanego pózniej, "po". Uwidacznia się to w sposo-
bie zapisywania rozkazów w asemblerze: operand umieszcza się
w nawiasie, a Y dopiero za nim. Np.
CMP (Z),Y
LDA (20),Y itd.
Rysunek 5.2 wyjaśnia działanie tego trybu.
Strona zerowa Rejestr Y
N
Kod operacji
Adres OP
+
Wskaznik
RAM
Baza
Dane
Baza+N
Rys. 5.2 Adresowanie pośrednie postindeksowane Y
Niechaj znowu na stronie zerowej znajdą się te same, co
przedtem trzy adresy:
00CC 00 30
00CE 40 30
00D0 80 30
Zwróćmy uwagę że wyznaczają one na stronie trzydziestej
--- 104 ---
odcinki pamięci o długości 40 hex czyli 64 bajtów. Niech obsza-
ry te zawierają ciągi po 64 nieduże liczby binarne, które chce-
my do siebie dodać i wynik umieścić w 64-bajtowym polu poczy-
nając od adresu 3080 hex. Oto program, który to wykona:
LDY #3F Zapisujemy w Y długość bloków -1
CYKL CLC Zawsze przed dodawaniem ...
LDA (CC),Y Liczba z pierwszego ciągu w A
ADC (CE),Y Dodanie liczby z drugiego ciągu
STA (D0),Y Zapisanie wyniku w trzecim ciągu
DEY
BPL CYKL
Jak widać, w przeciwieństwie do X, tu rejestr Y pełni po-
znaną wcześniej rolę licznika pętli. Omówione zastosowanie try-
bu postindeksowanego ma duże znaczenie wtedy, gdy w chwili pi-
sania programu nie znamy adresów, pod jakimi znajdować się
będą dodawane ciągi, a jedynie adresy na stronie zerowej, pod
które te adresy będą zapisywane. Może to być użyteczne również
wtedy, gdy te same czynności, również bardziej skomplikowane
niż przedstawione tu dodawanie, zechcemy wykonywać wobec da-
nych położonych w różnych miejscach pamięci. Wystarczy wówczas
wpisać adresy początków odpowiednich pól na stronę zerową i
korzystać z nich w wysoce efektywnym trybie adresowania: poś-
rednim strony zerowej postindeksowanym Y, zwanym też krótko
pośrednim indeksowanym Y.
Przypomnijmy dostępne rozkazy: ADC, AND, CMP, EOR, LDA,
ORA, SBC, STA.
Czas wykonania rozkazów w tym trybie jest o cykl dłuższy
niż w absolutnym indeksowanym.
wiczenia
x 1. Rozporządzając podanymi adresami można napisać przy-
kładowy program z tego punktu również w trybie absolutnym in-
deksowanym. Napiszmy go.
2. Obliczmy, ilu cykli wymagać będzie jeden i drugi prog-
ram.
3. Jakie są podobieństwa, a jakie różnice rozkazów:
LDA 10,X i LDA (10),X? Przyjmijmy, że X=8.
--- 105 ---
5.9 Dodatkowe rozkazy 65C02 i rozkazy "utajone" 6502
Do zmodyfikowanej wersji omawianego w tej książce mikro-
procesora 6502, opatrzonej nazwą 65C02 i wykonanej w innej te-
chnologii CMOS wprowadzono szereg zmian, które tu pokrótce o-
mówimy. Nowy mikroprocesor zachował zasadnicze parametry 6502.
Główna różnica polega na wprowadzeniu kilku nowych rozkazów
oraz na zwiększeniu liczby trybów, w jakich dostępne są roz-
kazy dotychczas istniejące.
Zmiany te nie naruszają dotychczasowej struktury rozka-
zów i trybów adresowania 6502. Programy opracowane na ten os-
tatni mikroprocesor można wykonywać na nowym. Oto dokonane
uzupełnienia (w nawiasach kody operacji w hex).
Nowe rozkazy:
STZ (store zero) - zastępuje parę rozkazów LDA 0,STA (ad-
res). Dostępny w trybach: strony zerowej (64), strony zerowej
indeksowany X (74), absolutny (9C), absolutny indeksowany X(9E).
BPA (branch absolute) - odgałęzienie bezwarunkowe zacho-
wujące pozostałe cechy odgałęzień warunkowych. Tryb względny
(80).
TRB (test and reset) oraz TSB (test and set) umożliwiają
sprawdzenie bitów w bajcie pamięci i akumulatorze, sygnalizu-
jąc wynik w znaczniku Z. Dostępne w trybach: absolutnym (TRB
- 1C, TSB - 0C) i strony zerowej (TRB - 14, TSB - 04).
Wprowadzono komunikację rejestrów X i Y ze stosem:
[ Pobierz całość w formacie PDF ]
-
Archiwum
- Strona Główna
- Jan KwaĹniewski Dieta optymalna, dieta
- Jan Jakub Kolski Kulka z chleba
- Kowalski Wierusz Jan Poczet papieĹźy
- Jan Kochanowski Fraszki
- Evans Jean Nie odrzucaj mojej miśÂośÂci
- John Connolly CP 04 The White Road (com v4.0)
- M185. Roberts Alison Zaproszenie
- Ostatni skok Carter Ally
- Kiss Me Kill Me Scarlett Wakefield_Book 1 Lauren Henderson
- Anthology Shifting Steam
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- spaniele.keep.pl