[ Pobierz całość w formacie PDF ]
niku. Moskwa 1984 Mir, s. 334. Przekład książki: Charles M.
Gilmore: Introduction to Microprocessors. McGraw Hill 1981
16. Kompiutiery. Sprawocznoje rukowodstwo w trioch tomach.
Moskwa 1986 Mir, s. 413,440,406. Tłumaczenie książki: The
McGraw Hill Computer Handbook, 1983
17. Sacha Krzysztof, Rydzewski Andrzej: Mikroprocesor w
pytaniach i odpowiedziach. Warszawa 1987 WNT, s. 287
18. Ruszczyc Jan: Poznajemy FORTH. Warszawa 1987 SOETO,
s. 230.
226
ANEKSY
A1 Rozkazy 6502. Opis i zastosowania
Poniższe zestawienie obejmuje wszystkie rozkazy mikropro-
cesora 6502. W nagłówku każdego rozkazu od lewej: mnemonik,
jego rozwinięcie angielskie oraz po prawej nazwy znaczników,
na które wpływa dany rozkaz. W treści: opis działania rozkazu
oraz omówienie najczęstszych zastosowań.
Przy rozkazie BCC obszerniej omówiono wspólne cechy wszy-
stkich ośmiu rozkazów odgałęzień.
Zastosowano następujące oznaczenia:
A - akumulator
X, Y - rejestry indeksowe X i Y
M - bajt w pamięci
DANE, dane - bajt danych w pamięci lub operandzie trybu
natychmiastowego.
Nazwy znaczników - takie jak w treści książki (rozdz. 2
i 4).
Dalsze informacje o rozkazach, ich kodach i trybach adre-
sowania zawarte są w następnych aneksach.
ADC add with carry Znaczniki: NVZC
Opis: Dodaje bajt danych do A plus znacznik przeniesienia
C. Ustawia C, gdy wynik przekroczył 255 (FF hex). Wynik zosta-
wia w A.
Zastosowania: Jeżeli w chwili dodawania znacznik C był u-
stawiony (miał wartość 1), wynik będzie o 1 większy od sumy
liczb. Dlatego przed rozpoczęciem każdej operacji dodawania
należy skasować C z pomocą rozkazu CLC. Jeżeli po wykonaniu
ADC znacznik C został ustawiony, oznacza to, że wynik przekro-
czył rozmiar bajtu czyli 255. W akumulatorze znajduje się wó-
wczas osiem dolnych bitów wyniku, a w C - najbardziej znaczą-
cy. Umożliwia to wykorzystanie wartości C w dodawaniu liczb
227
dwu i wielobajtowych. Patrz punkt 3.5.
ADC wpływa również na inne znaczniki. Ustawienie znacz-
nika nadmiaru V sygnalizuje, że nastąpiło przeniesienie z bi-
tu b6 do b7. V wykorzystywany jest w dodawaniu i odejmowaniu
ze znakiem.
Duże znaczenie ma Z, którego ustawienie sygnalizuje wynik
0. Ustawienie N oznacza, że bit b7 wyniku przybrał wartość 1,
co w arytmetyce ze znakiem oznacza liczbÄ™ ujemnÄ….
Po przejściu z pomocą SED na tryb binarno-dziesiętny
rozkaz ADC wykonuje dodawania w tym trybie.
Jako jeden z dwóch rozkazów arytmetycznych ADC jest sze-
roko wykorzystywany we wszelkich obliczeniach, w tym w pod-
programach mnożenia.
AND logical AND Znaczniki: NZ
Opis: Wykonuje logiczne I (koniunkcjÄ™) na bitach danych
i A. Wynik zostawia w A. Bity wyniku przybierają wartość 1 ty-
lko wtedy, gdy oba odpowiednie bity danych i A mają wartość 1.
Zastosowania: Głównym zastosowaniem AND jest kasowanie
części bitów z pomocą wzorcowego bajtu zwanego maską przy za-
chowaniu wartości pozostałych bitów. Oto przykład:
LDA NN Przetwarzana liczba
AND #$7F 01111111 bin
spowoduje, że bit b7 w liczbie NN bez względu na jego poprzed-
nią wartość przybierze 0, natomiast pozostałe bity nie ulegną
zmianie.
ASL arithmetic shift left Znaczniki: NZC
Opis: Przesuwa wszystkie bity w bajcie wskazanym przez
operand o 1 w lewo i zostawia wynik w tym bajcie. W trybie a-
kumulatora jest to A, w pozostałych trybach M. Skrajny lewy
bit bajtu jest przenoszony do znacznika C, a do skrajnego pra-
wego wprowadzane jest 0.
Zastosowania: Umożliwia szybkie mnożenie przez 2. Liczby
większe niż 255 można mnożyć przez 2 łącząc stosowanie ASL i
ROL. Patrz punkt 3.10. ASL jest szeroko wykorzystywane w pod-
228
programach mnożenia.
Innym zastosowaniem ASL jest przesuwanie dolnego półbajtu
do górnego i wypełnienie dolnego zerami. Uzyskuje się to czte-
rokrotnym ASL.
BCC branch if carry clear Znaczniki: żaden
Opis: Grupa ośmiu rozkazów odgałęzień czyli skoków warun-
kowych wykonuje czynności na takich samych zasadach, które zos-
taną tu omówione.
1. Każdy rozkaz odgałęzienia reaguje przeskokiem pod nowy
adres w programie na inny z czterech znaczników: N, V, Z i
C, w rejestrze stanu procesora P oraz na inną wartość tego
znacznika 0 lub 1...Gdy odpowiedni znacznik ma odmiennÄ… war-
tość, przeskok nie następuje i wykonywany jest rozkaz w prog-
ramie następujący bezpośrednio po rozkazie odgałęzienia.
2. Zawsze w 1-bajtowym operandzie zawarte jest przesuniÄ™-
cie w stosunku do adresu rozkazu następującego bezpośrednio za
rozkazem odgałęzienia traktowane jako liczba z e z n a k i
k i e m, dodawana do owego adresu. Tak więc zasięg skoku waru-
nkowego ograniczony jest do 127 bajtów naprzód i 128 bajtów
wstecz licząc od następnego rozkazu czyli +129 i -126 licząc
od miejsca, w którym umieszczamy rozkaz odgałęzienia.
3. Rozkazy nie wpływają na stan znaczników ani rejestrów.
4. W asemblerze podaje siÄ™ adres docelowy lub jego ety-
kietę, a program asemblujący sam wylicza właściwy 1-bajtowy
operand.
WracajÄ…c do rozkazu BCC, wykonuje on skok, gdy znacznik
przeniesienia C=0.
Zastosowania: W oparciu o sprawdzenie wyniku CMP, ADC i
innych rozkazów wpływających na C rozkaz BCC umożliwia wykona-
nie odgałęzienia czyli skoku warunkowego analogicznego do
struktur IF ... THEN lub ON ... GOTO w Basicu. Przy porówna-
niach wykonuje odgałęzienie, gdy
DANE > A
BCS branch if carry set Znaczniki: żaden
Opis: Działanie analogiczne jak BCC, ale gdy znacznik
229
przeniesienia C jest ustawiony (C=1). Gdy C=0, wykonywany
jest następny rozkaz.
Zastosowania: Podobne jak BCC. Przy porównaniach wykonu-
je odgałęzienie, gdy
DANE Tð A
BEQ branch if result zero Znaczniki: żaden
Opis: Wykonuje czynności analogiczne jak BCC, gdy znacz-
nik wyniku zerowego Z jest ustawiony Z=1 . Gdy Z=0, wykony-
wany jest następny rozkaz.
Zastosowania: Umożliwia wykonanie odgałęzienia warunkowe-
go do innego fragmentu programu w przypadku, gdy sprawdzenie
Z wykazało równość dwóch liczb lub zerowy wynik operacji.
Przy porównaniach wykonuje odgałęzienie, gdy
DANE = A
BIT test bits Znaczniki: NVZ
Opis: Wykonuje logiczne AND na A i M, jednak nie zapisuje
wyniku, natomiast wpływa na znaczniki. Znacznik Z ustawiony
jest, gdy wynikiem logicznego AND jest 0, kasowany w przeciw-
nym wypadku. Ponadto bity b7 i b6 danych sÄ… k o p i o w a-
n e odpowiednio do znaczników N i V.
Zastosowania: Zaletą BIT jest to, że przy sprawdzaniu
nie zmienia wartości A ani M. BIT upraszcza sprawdzanie bitów
b6 i b7 w danych. Użyteczność rozkazu ogranicza to, że nie
można stosować go w trybie natychmiastowym ani w adresowaniu
indeksowym. Dlatego zastępuje się go często innymi sprawdze-
niami, np. CMP i AND.
BMI branch if minus Znaczniki: żaden
Opis: Wykonuje czynności analogiczne jak BCC, gdy znacz-
nik wyniku ujemnego N jest ustawiony (N=1). Gdy N=0, wykonywa-
ny jest następny rozkaz.
Zastosowania: Pozwala wykonać odgałęzienie, gdy bit b7
jest ustawiony tzn. bajt ma wartość większą niż 127. Wykorzy-
stuje się to m.in. w przeszukiwaniu tablic słów kluczowych
języków programowania w interpretatorach ustawiając b7 w os-
230
tatnim znaku słowa. Poza tym możliwe do wykorzystania głównie
w arytmetyce ze znakiem.
BNE branch on not equal to zero Znaczniki: żaden
Opis: Wykonuje czynności analogiczne jak BCC, gdy znacz-
nik wyniku ujemnego jest skasowany (Z=0). Gdy Z=1, wykonywany
jest następny rozkaz.
Zastosowania: Powoduje odgałęzienie tylko wtedy, gdy po-
równywane liczby są nierówne. Obok zastosowań analogicznych
jak w konstrukcjach Basicu IF ... THEN i ON ... GOTO rozkaz
BNE jest również szeroko wykorzystywany w budowie pętli liczo-
nych podobnych do konstrukcji Basicu: FOR I=1 TO N: sekwencja
instrukcji: NEXT I. Na przykład:
LDX #$20
LDA #0
CYKL STA $4000,X
DEX
BNE CYKL
[ Pobierz całość w formacie PDF ]
© 2009 Nie chcÄ™ już wiÄ™cej kochać, cierpieć, czekać ani wierzyć w rzeczy, których nie potwierdza życie. - Ceske - Sjezdovky .cz. Design downloaded from free website templates