224
słów 8-bitowych (bajtów). Ponadto jj.P 8080 może współpracować (przy bezpośrednim adresowaniu) z 256 urządzeniami wejściowymi i taką samą liczbą urządzeń wyjściowych.
6.J.1. Opis poszczególnych bloków
Schemat blokowy y.7 8080 przedstawiony Jest na rys. 6.3. Poniżej opiszemy działanie i przeznaczenie poszczególnych bloków.
■V".
fi
Rys. 6.3. Architektura pP 8080
Rejestry operacyjne. Pamięć wewnętrzna fuP składa się z 7 programowo dostępnych rejestrów A (Akumulator), B, C, D, E, H, L. Niektóre z rozkazów oddziałują Jednocześnie na zawartość par rejestrów BC, DE, HL, przy czym para HL służy zazwyczaj do przegotowania adresu dla rozkazu komunikacji z pamięcią zewnętrzną.
Rejestry W, Z nie są dostępne dla programisty. Służą one jaP Jako pamięć pomocnicza przy wykonywaniu niektórych rozkazów. Pomocniczą rolę pełni również inkrementator (dekrementator), służący do zwiększania lub zmniejszania o 1 zawartość dowolnego rejestru.
Licznik rozkazów (Program Counter - PC) Jest 16-bitowym rejestrem,którego zawartość wskazuje adres następnego bajtu programu; może to być kolejny bajt rozkazu aktualnie wykonywanego lub kod operacyjny rozkazu następnego. Licznik rozkazów Jest programowo dostępny1 .
Wskaźnik stosu. Stos Jest ustalonym przez programistę obszarem w zewnętrznej pamięci RAM, w którym mogą być zapisywane i odczytywane dane w kolejności LD0. Rozmiar stosu wyznacza się przez ustawienie stanu początkowego 16-bitowego rejestru wskaźnika sto3u (Stacfc Pointer - SP), Zawartość wskaźnika stosu Jest automatycznie pomniejszana o 1 po każdym przesłaniu do stosu, a powiększana o 1 po każdym pobraniu informacji ze stosu.
Rejestr i dekoder rozkazów oraz układ steru/lacy. Rozkaz składa się z dwu części: kodu operacyjnego i operandów lub ich adresów. Kod operacyjny określa rodzaj operacji, jaką procesor ma wykonać na wskazanych operan-dach.
W czasie pobierania rozkazu z pamięci zewnętrznej pierwszy jego bajt, zawierający kod operacyjny, zostaje przesłany do 8-bitowego rejestru rozkazów (Instruction Register - IR) połączonego z dekoderem rozkazów (In-struction Decoder - ID). Sygnał wyjściowy dekodera wprowadzany jest, wraz z zewnętrznymi sygnałami sterującymi, do układu sterowania (Timing and Control) koordynującego pracę wszystkich układów procesora w kolejnych stanach i cyklach wykonywania rozkazu.
Układ arytmetyczno-loglczny (AUT) wykonuje operacje arytmetyczne lub logiczne na parze danych, pobieranych z akumulatora poprzez Jego rejestr buforowy (Accumulator Iatch) i innych jednostek pamięci poprzez rejestr pomocniczy (Temporary Register). Dodatkowo, na wynik operacji w AIO może wpływać stan wskaźników przeniesienia. Wynik każdej operacji umieszczany jest w akumulatorze oraz wpływa na stan wskaźników. Dzięki układowi korekcji dziesiętnej (Deeimal Adjust) AUJ może przekształcić zawartość akumulatora do postaci BCD (rozkaz DAA).
Wskaźniki (Flags) Jest to 5 niezależnych przerzutników sterowanych przez ALU. Ich stan zawiera niektóre parametry rezultatu wykonanej operacji arytmetycznej lub logicznej i pozostaje niezmieniony aż do wykonania przez procesor następnego rozkazu wpływającego na nie. Stan czterech wskaż ników może być testowany i wpływać na dalsze wykonywanie programu. Poniżej podajemy nazwy i funkcje pełnione przez poszczególne wskaźniki.
Wskaźnik przeniesienia (Carry - CY) jest ustawiany lub zerowany przez rozkazy arytmetyczne lub logiczne. Głównym jego przeznaczeniem Jest sygnalizacja przeniesienia przy operacjach dodawania i odejmowania.
Pomocniczy wskaźnik przeniesienia (Auiiliary Carry - AC) jest ustawiany lub zerowany przez instrukcje dodawania, odejmowania, przyrostu i porównania. Wskaźnik ten ustawiany jest z chwilą wystąpienia przeniesienia w bicie nr ). Ilustruje to poniższa operacja dodawania, w wyniku której następuje wyzerowanie (zgaszenie) CY oraz ustawienie (zapalenie) AC.
Bit nr 765^3210
01011101 + 10000101
11100010 --CY=0 -~AC=1
Pomocniczy wskaźnik przeniesienia nie jest bezpośrednio testowany przez rozkazy programu i jego stan uwzględniany jest tylko przy wykonywaniu rozkazu DAA korekcji dziesiętnej.
Termin „programowo dostępny" lub „programista ma dostęp" oznacza Istnienia rozkazów oddziałujących na dany rejestr.