Intel 8085 – 8-bitowy mikroprocesor wprowadzony przez firmę Intel w 1976 roku.
Następca układu 8080, całkowicie z nim zgodny programowo, w porównaniu z 8080 wymagał jednak mniejszej liczby układów scalonych tworzących niezbędne otoczenie procesora, umożliwiając w ten sposób zmniejszenie kosztów budowy mikrokomputera.
Cyfra „5” w nazwie modelu oznaczała, że 8085 potrzebował tylko +5 V napięcia zasilania, w odróżnieniu od +5 V, -5 V i +12 V wymaganych przez 8080.
Mikroprocesory 8080 i 8085 były używane w komputerach działających z systemem operacyjnym CP/M-80; 8085 był także powszechnie stosowany jako sterownik w wielu urządzeniach (dzięki uproszczeniu konstrukcji systemu w stosunku do 8080). Oba te procesory zostały w późniejszym czasie zdystansowane przez mikroprocesor Z80 firmy Zilog, który stał się najpopularniejszym mikroprocesorem 8-bitowym używanym w Europie w komputerach domowych na początku lat 1980.
Architektura mikroprocesora 8085
[edytuj | edytuj kod]Elementy mikroprocesora 8085
[edytuj | edytuj kod]Jednostka sterująca
[edytuj | edytuj kod]Jednostka sterująca (CU) wytwarza sygnały sterujące dla pobierania i wykonywania instrukcji. Wytwarza ona dwa rodzaje sygnałów sterujących:
- zewnętrzne – sterują pracą pamięci i układów wejścia wyjścia, należą do nich:
- IO/-M (wybór wejścia-wyjścia/ pamięci)
- -WR (sygnał zapisu danych)
- -RD (sygnał odczytu danych)
- S0, S1 - informacja o typie cyklu szyny
- ALE - sterowanie zatrzasku adresu
Sygnały -WR i -RD są aktywne poziomem niskim.
- wewnętrzne – sterują działaniem wewnętrznych bloków mikroprocesora.
Szyna danych i adresowa
[edytuj | edytuj kod]Istotną modyfikację w stosunku do 8080 stanowiło wprowadzenie w 8085 multipleksowanej szyny adresowej i danych - linie AD7..0 służyły na początku każdego cyklu transmisji do przesłania adresu, a następnie do przesłania danych. Udostępnienie adresu na zewnątrz procesora przez cały czas trwania cyklu transmisji wymagało użycia zewnętrznego zatrzasku adresu (np. w postaci układu 74573), sterowanego sygnałem ALE. Pomimo konieczności użycia zatrzasku adresu, konstrukcja jednostki centralnej z 8085 była znacznie prostsza niż z 8080, dzięki eliminacji dodatkowych zasilań i układów generatora zegara 8224 i sterownika szyny 8228.
Licznik instrukcji
[edytuj | edytuj kod]Licznik instrukcji (PC) procesora jest 16-bitowy, wskazuje adres kolejnej instrukcji programu, która ma być pobrania z pamięci.
Jednostka arytmetyczno logiczna
[edytuj | edytuj kod]Jednostka arytmetyczno logiczna (ALU) wykonuje podstawowe operacje arytmetyczne i logiczne na danych ośmiobitowych oraz kilka operacji na danych 16-bitowych, pożytecznych przy wyliczaniu adresów. Zestaw dostępnych operacji zawiera:
- dodawanie zwykłe i z przeniesieniem wchodzącym,
- odejmowanie zwykłe i z pożyczką wchodzącą,
- inkrementacja/dekrementacja (zwiększanie/zmniejszanie o 1),
- korekcja wyniku po dodawaniu liczb w kodzie BCD,
- suma logiczna, iloczyn logiczny, różnica symetryczna (XOR)
- negacja zawartości akumulatora,
- przesunięcie/rotacja zawartości akumulatora w lewo i w prawo, z uwzględnieniem lub bez bitu przeniesienia,
- porównywanie liczb.
Akumulator
[edytuj | edytuj kod]8-bitowy rejestr akumulatora (A) zawiera argument źródłowy i wynik operacji dwuargumentowych na danych 8-bitowych wykonywanych w ALU. Służy do wykonywania obliczeń oraz do interakcji z układami wejścia/wyjścia.
Rejestry danych i adresowe
[edytuj | edytuj kod]Rejestry robocze (pomocnicze) służą do przechowywania danych pomocniczych, które są zazwyczaj drugimi argumentami dla ALU lub do przechowywania wyników operacji cząstkowych. Procesor ma 6 8-bitowych rejestrów roboczych ogólnego przeznaczenia: B, C, D, E, H, L, połączonych w trzy pary 16-bitowe, BC, DE i HL, służące jako rejestry adresowe lub danych. Ponadto procesor jest wyposażony w rejestr wskaźnika stosu SP, zawierający adres danej ostatnio umieszczonej na stosie.
Wskaźnik stosu
[edytuj | edytuj kod]Wskaźnik stosu (SP) jest rejestrem 16-bitowym, który wykorzystuje się do ustalenia adresu do zapisu i odczytu danych z operacji na stosie.
Rejestr instrukcji
[edytuj | edytuj kod]8-bitowy rejestr instrukcji (IR) przechowuje kod operacyjny aktualnie wykonywanej instrukcji; jest on używany wewnętrznie przez jednostkę sterującą. Jego zawartość steruje dekoderem instrukcji.
Rejestr znaczników
[edytuj | edytuj kod]Rejestr znaczników mikroprocesora 8085 zawiera 7 znaczników, o 2 więcej niż w 8080. Znaczniki przechowują atrybuty wyniku ostatnio wykonanej operacji arytmetycznej lub logicznej. Instrukcje przesłań danych nie wpływają na stan znaczników. Rejestr znaczników 8085 zawiera następujące znaczniki:
- S - znaku
- Z - zera
- C przeniesienia
- AC - przeniesienia pomocniczego
- P - parzystości
- V - nadmiaru dodawania/odejmowania w kodzie U2 - nie występuje w 8080, wpływa na wykonanie instrukcji RSTV
- UI - nadmiaru/niedomiaru inkrementacji/dekrementacji 16-bitowej bez znaku oraz porównania liczb 8-bitowych ze znakiem – nie występuje w 8080, wpływa na wykonanie instrukcji JUI i JNUI
Wejście SID i wyjście SOD
[edytuj | edytuj kod]Mikroprocesor jest wyposażony w jedno wyjście bitowe i jedno wejście bitowe. Mogą one służyć do programowej realizacji szeregowej transmisji asynchronicznej w standardzie UART lub w dowolnym innym charakterze, np. do testowania stanu przycisku i sterowania diodą LED. Do sterowania wyjściem SOD służy instrukcja SIM, a do odczytu stanu wejścia SID - instrukcja RIM.
Przerwania
[edytuj | edytuj kod]Oprócz przerwania INT, obsługiwanego analogicznie jak w układzie 8080, mikroprocesor 8085 jest wyposażony w cztery wejścia zgłaszania przerwań, których uaktywnienie powoduje wywołanie procedury spod określonego adresu:
- RST5.5 - przerwanie maskowalne, zgłaszane poziomem wysokim, adres 0x002c
- RST6.5 - przerwanie maskowalne, zgłaszane poziomem wysokim, adres 0x0034
- RST7.5 - przerwanie maskowalne, zgłaszane zboczem narastającym, adres 0x003c
- TRAP - przerwanie niemaskowalne, zgłaszane zboczem narastającym, adres 0x0024
Przerwania maskowalne mogą być indywidualnie włączane i wyłączane przy użyciu instrukcji SIM
Lista instrukcji
[edytuj | edytuj kod]8085 wykonuje wszystkie instrukcje 8080 oraz 12 własnych, których kody operacyjne w 8080 stanowiły aliasy kodów innych, udokumentowanych instrukcji. Spośród rozszerzeń listy instrukcji, dokumentacja większości producentów zawierała opis tylko dwóch instrukcji: RIM i SIM, używanych do sterowania przerwaniami i jednobitowym wejściem SOD i wyjściem SID. Publikacja opisu pozostałych instrukcji, znacznie ułatwiających operacje i adresowanie danych w programach pisanych w językach wysokiego poziomu, została wstrzymana, prawdopodobnie z powodu planów wprowadzenia procesora 8086, który nie miał odpowiedników dla tych instrukcji. Oficjalny opis tych instrukcji jest dostępny w dokumencie[1].
Przypisy
[edytuj | edytuj kod]- ↑ Tundra Semiconductor Corporation , 8000 Series Components Manual, 1996 .