TRYBY ADRESOWANIA
Adresowanie natychmiastowe
Adre.Bezpośrednie
Pośrednie
Indeksowe
Bazowe
Względne
MOTOROLA MC6800-8bitowy,posiada 16bit szynę adresową, może zaadresować 64kB
Budowa
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 dodawahnia,przesunięcie ustawia się na 1
N-bit negatiw-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
Adresowanie natychmiastowe IMM
Adre.Bezpośrednie (adresowanie strony zero) DIR
Adresownaie pełne (roszerzone) po kodzie ooperacji podajemy pełny 2Bajtowy adres tzn na pełnych 16bitach
EXT
Adresowanie Indeksowe zwykorzystaniem rejestru Indeksu IX16
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
TAB transfer z A do B tzn B:=A (kopiowanie wartości z A do B)
TBA A:=B
PSHa 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
ROZKAZY 16 bitowe
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łąnie 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
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 adresow,odejmowanie)
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 akum. przez bit przeniesienai
ROR<ae> jw. tylko zawartości komórki
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
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)
INC<ae> a:=a+1 ae:=ae+1
DECa a:=a-1
DEC<ae> ae:=ae-1
DAA (przekształca di forn=matu BCD wynik binarnego kodu liczby kodów BCD)
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)
ROZKAZY SKOKÓW
JMP<al.> PC:=al.
BRA<al.> rozkaz stanu względnego PC:=PC+al.
ISR<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)
SKOKI WZGLĘDNE WARUNKOWE
Bwa<al.> IF wa=THRUE THEN
PC:=PC+al.
WARUNKI REALIZOWANE NA POJEDYNCZYCH BITACH
CC skocz c=Ǿ
CS C jest ustawiony C=1
EQ skocz jeżeli będą równe Z=1
NE Z=Ǿ
MI N=1
PL N=Ǿ
GE N⊕V=Ǿ
GT Z+(N⊕V)=Ǿ
LE Z+(N⊕V)=1
LT N⊕V=1
HI C+Z=Ǿ
LS C+Z=1
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
PC:=M($FFFA)
NAI-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)
A 8bit
B 8bit
ALU
8-bit
CCR
PC 16bit
SP 16bit
IX 16bit
Rejestry robocze
(akumulatory)
Rejestry adresowe
Rejestry stanu procesora
PC licznik 16bit
SP wskaźnik stosu 16bit
IX rejestr indeksowy 16bit