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 NV=0 GT Z+(NV)=0 LE Z+(NV)=1 LT NV=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)