Intel 8085

Intel 80858-bitowy mikroprocesor wprowadzony przez firmę Intel w 1976 roku.

Procesor 8085AH-2 Intel
Procesor Intel 8085

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-tych.

Architektura mikroprocesora 8085Edytuj

 
Architektura mikroprocesora i8085

Elementy mikroprocesora 8085Edytuj

Jednostka sterującaEdytuj

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 adresowaEdytuj

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 instrukcjiEdytuj

Licznik instrukcji (PC) procesora jest 16-bitowy, wskazuje adres kolejnej instrukcji programu, która ma być pobrania z pamięci.

Jednostka arytmetyczno logicznaEdytuj

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.

AkumulatorEdytuj

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 adresoweEdytuj

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 stosuEdytuj

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 instrukcjiEdytuj

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ówEdytuj

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 SODEdytuj

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.

PrzerwaniaEdytuj

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 instrukcjiEdytuj

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].

PrzypisyEdytuj

  1. Tundra Semiconductor Corporation, 8000 Series Components Manual, 1996.