Pobierz "Motorola MC6800"

Transkrypt

Pobierz "Motorola MC6800"
Intel 8080 / 85
8-bitowy
16-bitowa szyna adresowa
Φ1
8080
szyna danych
D
Φ2
WR
synchr
8228
DBIN
MEMR
MEMW
IOR
HLDA
STSTB
8224
zegar
STSTB
IOW
Φ1,Φ2-sygnały zegarowe przesunięte w czasie
DBIN- Dute Bose input, szyna danych pracuje jako wejście
HLDA- odpowiedź na sygnał HOLD( zatrzymanie pracy procesorów)
BUDOWA
A
ALU
8 bitowe rej
F
16 bitowe rej
B
C
D
E
H
L
PC
SP
Rejestr HL służy jako rejestr adresowy i odwołanie się do danych w
F- rejestr wskaźników 5 bitów
SP- wskaźnik stosu
PC- licznik rozkazów
Z- bit zera (ustawia się na1 gdy wynik ostatniej operacji jest 0)
S-bit znaku, (0-wynik dodatni 1-wynik ujemny)
CY- bit przeniesienia
AC –bit przeniesienia połówkowego
P- bit parzystości, sygn. parzysty liczby 1
pamięci
Rozkazy :
MOV- rozkaz przesyłania pomiędzy akumulatorem i rejestrem
MVI- rozkaz wpisania do akumulatora konkretnej wartości
ADD B – do akumulatora dodaj wartość B i wynik w akumulatorze
ADI 12H – do akumulatora dodaj wartość 12
ADC – dodanie z uwzględnieniem CY
ACI – dodanie z uwzględnieniem bitu przeniesienia CY ( konkretna wartość)
SUB – odejmowanie
SUI – odejmowanie konkretnej wartości
SBB , SBI
Struktura wew. Procesora Z-80 – 8 bitowa z możliwością 16 bitowej
A’
A
F’
B’
D’
H’
ALU
C’
E’
L’
B
C
D
E
ALU
H
L
F
SP
I
PC
F- rejestr wskaźnikowy
IX
A’- drugi akumulator
IY
F’- rejestr wskaźnikowy powielony
I-rejestr wektorów przerwań
A-akumulator
SP- wskaźnik stosu
PC-licznik rozkazów
IX-rejestr indeksowy
ALU-8bitowe z możliwością operacji na 16 bitach
Wskaźniki bitowe:
Z- bit zero
S- bit znaku
CY- bit przeniesienia
P/V- parzystość jeżeli praca logiczna, lub nadmiar praca arytmetyczna
N - 1 ostatnią operacją było odejmowanie
H- bit przeniesienia połówkowego do dokładnego wykonania operacji
Adresowanie:
- Natychmiastowe
- Przez rejestr H,L – wpisany jest adres w komórce (bezpośrednie)
- indeksowe
Rozkazy:
LD,AB-ładuj
LDA,#nLDA,nnLDA
ADD A,B- dodaj do A zawartość B
ADD A,M
ADD HL,BC- dodawanie 16 bitowe do pary rejestru HL dodaj BC i wynik umieść w HL
ADC- dodanie z uwzględnieniem bitu przeniesienia
EX BC,DE- zamiana miejsca BC na DE
LDILDDLDDRPrzenosi z jednego miejsca rejestru do innego
LDIR
Intel 8086 ( pierwszy 16-bitowy procesor)
Układ BIU -ma za zadanie adresowanie pamięci, obieranie kolejnych rozkazów z pamięci i umieszczanie ich
kolejce na żądanie organu wykazu. Przesyłanie danych do pamięci lub pobranie. Układ EU ma pobierać kolejne
rozkazy z kolejki i ich wykonanie tzn. obliczenia adresów efektywnych argumentu i realizacja odpowiadającym
rozkazom informacji przetwarzania.
EU
Akumulator
AH
AL
r. bazowy
BIU
BH
BL
PC
r. zliczający
CH
CL
CS
0000
r. danych
DH
DL
wskaźnik
stosu
SP
SS
0000
Wskaźnik bazy
DS
0000
BP
ES
0000
r. indeksowy źródła
SI
r. indeksowy odbiorcy
PClicznik rozkazów
DI
CS- Segment programu
SS- segment stosu
DS- Segment danych
ES- segment dodatkowy
TRYBY ADRESOWANIA
1. Adresowanie natychmiastowe
2. Adresowanie Bezpośrednie
3. Pośrednie
4. Indeksowe
5. Bazowe
SEGMENT:OFFSET
6. Względne
MOTOROLA MC6800-8bitowy,posiada 16bit szynę adresową, może zaadresować 64kB
Budowa
Rejestry robocze
(akumulatory)
Rejestry adresowe
A 8bit
B 8bit
ALU
8-bit
CCR
PC
16bit
SP
16bit
IX
16bit
PC licznik 16bit
SP wskaźnik
stosu 16bit
IX rejestr
indeksowy 16bit
Rejestry stanu procesora
Z-podstawowy bit (bit 0)-mówi czy w wyniku ostatniej wykonanej operacji wystąpiło 0-jeżeli tak to bit Z
ustawia 1 i odwrotnie
C-bit przeniesienia-wyniku dodawania, przesunięcie ustawia się na 1
N-bit negativ-czy wystąpiła liczba ujemna wyniku wykonania ostatniej operacji
V-bit przepełnienia-sygnalizuje że nastąpił nadmiar
H-bit przeniesienia połówkowego
I-bit zezwalania na przerwanie
TRYBY ADRESOWANIA
1. Adresowanie natychmiastowe IMM
2.
3.
4.
5.
Adresowanie Bezpośrednie (adresowanie strony zero) DIR
Adresowanie pełne (rozszerzone) po kodzie operacji podajemy pełny 2Bajtowy adres tzn na pełnych
16bitach
EXT
Adresowanie Indeksowe z wykorzystaniem rejestru Indeksu IX 16
IND
Adresownaie względne-wykorzystywane przy wykonaniu skoków względnych tj. warunkowe i
bezwarunkowe
REL
LISTA ROZKAZÓW
Rozkazy przesłań 8-bitowe (następuje przesłanie danych z pamięci do akumulatora A lub B i z
powrotem i między akumulatorami)
1.Przesłanie z pamięci do akumulatora
LDAa<ae> a:=ae
LDAA 15H adresowanie strony zero tzn.DIR
LDAA 0115H
adresowanie pełne EXT
LDAB 15,H,X
adresowanie indeksowe IND
2.Przesłania z akumulatora do pamięci
STAa<ae> ae:=a
STAA 21H adresowanie DIR
STAA 0212H
adresowanie EXT
STAB 37H,X
adresowanie indeksowe IND
I)
transfer z A do B tzn B:=A (kopiowanie wartości z A do B)
A:=B
a-nazwa akumulatora (A lub B) ,zawartość akum należy zapamiętać na sztosie
SP:=a
SP:=SP-1
PULa
zdjęcie ze sztosu
SP:=SP+1
a:=SP
II)
ROZKAZY 16 bitowe
1. Rozkazy przesłań
LDX <ae2> IX:=ae2 (IX-rejestr Indeksowy ,ae2-adres efektywny 2bajtowy)
LDS <ae2> SP:=ae2
STX <ae2> ae2:=IX
STS <ae2> ae2:=SP (przesłanie do pamięci zawartości wskaźnika sztosu)
TXS
SP:=IX-1
(przypisanie zawartości rejestru indeksowego do wskaźnika sztosu
pomniejszone o 1)
TSX
IX:=SP+1
2. ROZKAZY ARYTMETYCZNE I LOGICZNE 16 bitowe
-arytmetyczne
INX
IX:=IX+1
(zwiększa zawartość rej. Indeksowego o1)
INS
SP:=SP+1
(zwiększa wartość sztosu o1)
DEX IX:=IX-1
(zmniejsza zawartość rej.ind. o1)
DES
SP:=SP-1
-logiczne
CPX <ae2>
IX-ae2 (porównywanie adresów, odejmowanie)
3. ROZKAZY OBROTÓW
ROLa
-obrót w lewo akumulatora przez bit przeniesienia
ROL<ae>
-jw. tylko zawartości komórki
RORa
-obrót w prawo akumulatora. przez bit przeniesienia
ROR<ae>
jw. tylko zawartości komórki
4. RPZKAZY PRZESUNIĘĆ
ASLa
-przesunięcie w lewo, odpowiada mnożeniu przez dwa
ASL<ae>
ASRa
-arytmetyczne przesuniecie w prawo
ASR<ae>
LSRa
logiczne przesunięcie w prawo
5. ROZKAZY ARYTMETYCZNE I LOGICZNE
ADDa<ae>
a:=a+ae (dodawanie)
ADD A#12H
(do akum. A dodaj wartość 12 komórki szesnastkowo)
ADCa<ae>
a:=a+ae+c
(dodawanie wynik umieść w akum. a)
ABA
a:=A+B
SBC
a:=a-ae-C
(odejmowanie)
SBA
A:=A-B
NEGa
(zamiana liczby w pamięci lub akumulatorze na liczbę przeciwnną)
NEG<ae>
a:=0-a
CLRa
zeruj zawartość akumul. lub pamięci
CLR<ae>
a:=0
ae:=0
INCa
(zwiększa zawartość akum. lub pamięci o1)
TAB
TBA
PSHa
INC<ae>
a:=a+1 ae:=ae+1
DECa
a:=a-1
DEC<ae>
ae:=ae-1
DAA
(przekształca di formatu BCD wynik binarnego kodu liczby kodów BCD)
6. ROZKAZY LOGICZNE 8-bitowe
AND a<al.>
a:=a AND al.
ORa<al.>
a:=a OR al.
EORa<al.>
a:=a+al. (suma modulo2 )
COMa
a:=NOT a
COM<al.>
al.:=NOTal
BITa<al.>
a AND al.
CMPa<al.>
a-al. (Porównuje wartość)
CBA
A-B
TSTa
TST<Al.>
a-0 (testowanie zawartości akumulatora)
7. ROZKAZY SKOKÓW
JMP<al.>
PC:=al.
BRA<al.>
rozkaz skoku względnego PC:=PC+al.
JSR<al.>
skok bezwzględny (skok do podprogramu)
(SP):=PC
SP:=SP-2
PC:=al.
BSR<al.>
(SP):=PC
SP:=SP-2
PC:=pc+al.
RTS
SP:=SP+2 / PC:=(SP)
8. SKOKI WZGLĘDNE WARUNKOWE
Bwa<al.>
IF wa=THRUE THEN
PC:=PC+al.
WARUNKI REALIZOWANE NA POJEDYNCZYCH BITACH
CC
skocz c=0
CS
C jest ustawiony C=1
EQ
skocz jeżeli będą równe Z=1
NE
Z=0
MI
N=1
PL
N=0
GE
NV=0
GT
Z+(NV)=0
LE
Z+(NV)=1
LT
NV=1
HI
C+Z=0
LS
C+Z=1
9. ZASOBY OBSŁUGI PRZERWAŃ
SWI-przerwanie programowe
1. (SP):=A
SP:=SP-1
2. (SP):=B
SP:=SP-1
3. (SP):=IX
SP:=SP-2
4. (SP):=CCR SP:=SP-1
5. (SP):=PC
SP:=SP-2
6. PC:=M($FFFA)
WAI – oznaczenie na przerwanie 5 przerwań SWI
RTI
SP:=SP+2
PC:=(SP)
SP:=SP+1
CCR:=(SP)
SP:=SP+2
IX:=(SP)
SP:=SP+1
B:=(SP)
SP:=SP+1
A:=(SP)

Podobne dokumenty