Stos - liniowa struktura danych, w której dane dokładane są na wierzch stosu i z wierzchołka stosu są pobierane (bufor typu LIFO, Last In, First Out). Idea stosu danych można - stos położonych książek . Elementy stosu poniżej wierzchołka stosu można wyłącznie obejrzeć, aby je ściągnąć, trzeba najpierw po kolei ściągnąć to, co jest nad nimi. Informacja może być tylko raz odczytana ze stosu. Po odczytaniu odsłaniana jest informacja zapisana na pozycji niższej. Stos jest stosowany przede wszystkim dla zapamiętywania stanu licznika rozkazów przy skoku do podprogramu. System przerwań - jest układem umożliwiającym zawieszenie wykonywania bieżącego programu i skok do wykonywania specjalnego podprogramu obsługi przerwania , na skutek pojawienia się na specjalnym wejściu przerywającym mikroprocesora sygnału zewnętrznego. System przerwań umożliwia natychmiastową reakcję przez mikroprocesor na przypadkowe zdarzenia zewnętrzne. Transmisja równoległa - Wszystkie bity danych są przesyłane jednocześnie po niezależnych przewodach. W ten sposób są np. przekazywane dane i adresy na magistrali mikrokomputera. Dołączając w konkretny sposób magistrali ustalamy kierunek przekazywania danych. Układy programowalne są z reguły przystosowane do pracy dwukierunkowej. Kierunek jest ustalany w trakcie programowania. Podstawowe elementy to 2 lub 3 bramy WEjściowo-WYjściowe, podukłady sterowania współpracy z mikroprocesorem, zgłaszaniem przerwań oraz pracą całego układu. Każda brama układu może być zaprogramowana do pracy w jednym z czterech trybów: wejściowym, wyjściowym, dwukierunkowym, bitowym. Transmisja szeregowa - Polega na przesyłaniu poszczególnych bitów za pomocą pojedynczej pary przewodów. Jest ona wolniejsza od równoległej ale wymaga mniejszej liczby przewodów. Bity muszą być odczytywane przez odbiornik w tempie nadawania, inaczej niektóre bity mogłyby zostać zgubione lub odczytane podwójnie. Główny problem - synchronizacja pracy nadajnik-odbiornik. Stosuje się dwie metody: Transmisję synchroniczną - wymaga poprowadzenia między nadajnikiem i odbiornikiem dodatkowej linii synchronizującej po której jest pokazywany wspólny dla obu urządzeń sygnał synchronizujący. Transmisję asynchroniczną - Przekazywane dane są zaopatrzone w specjalne znaczniki początku i końca. Odbiornik i nadajnik mają zegary nastawione na tą samą częstotliwość. Zegar odbiornika jest uruchamiany w chwili wykrycia początku słowa i zatrzymany po odebraniu całego słowa.
CALL ADR (rozkaz wywołania podprogramu) Cykl 1. <pobranie bajtu rozkazu>*na magistralę adresową wysyłana jest zawartość licznika rozkazów PC*generowane są sygnały: pobrania rozkazu M1, dostępu do pamięci MREQ i odczytu pamięci RD w stanie niskim*mniej więcej po upłynięciu taktu zegarowego od wygenerowania ww. sygnałów na magistrali danych ustala się bajt rozkazu spod wskazanego przez PC adresu, który jest pobierany do rejestru rozkazów, a następnie dekodowany* zawartość licznika rozkazów PC zwiększa się o 1, a procesor przystępuje do wykonania rozkazu Cykl 2. <pobranie 1. bajtu adresu ADR>*na magistralę adresową wysyłana jest zawartość licznika rozkazów PC*generowane są sygnały: dostępu do pamięci MREQ i odczytu pamięci RD w stanie niskim dana z magistrali danych (1. bajt adresu podprogramu) pobierane są do rejestru rozkazów zawartość licznika rozkazów PC zwiększa się o 1 Cykl 3. <pobranie 2. bajtu adresu ADR> Przebiega analogicznie do cyklu 2. Po tym cyklu w rejestrze rozkazów znajduje się dwubajtowy adres podprogramu ADR, a licznik rozkazów PC zawiera adres powrotu. Cykl 4. <wysłanie na stos 1. bajtu PC>*na magistralę adresową wysyłana jest zawartość wskaźnika stosu SP pomniejszonego o 1 (tak, aby wskazywał na pustą komórkę pamięci) *generowany jest sygnał dostępu do pamięci MREQ w stanie niskim, zaś na magistralę danych wysyłany jest 1. bajt licznika rozkazów PC *po ustaleniu się zawartości magistrali danych (trwa to mniej więcej takt zegarowy) procesor generuje sygnał zapisu WR w stanie niskim i dana wpisywana jest do komórki wskazywanej przez SP Cykl 5. <wysłanie na stos 2. bajtu PC> Przebiega analogicznie do cyklu 4. Po tym cyklu wskaźnik stosu zawiera wartość dwukrotnie mniejszą od tej sprzed cyklu 4, wskazując na 2. bajt adresu powrotu. Pod koniec tego cyklu następuje szybkie wpisanie znajdującego się w rejestrze rozkazów adresu ADR do licznika rozkazów PC i wykonanie rozkazu kończy się. JUMP ADR (rozkaz skoku bezwarunkowgo) Cykl 1. Pobierany jest kod rozkazu z komórek pamięci o adresie zawartym w PC (w liczniku rozkazów). PC jest zmniejszane o 1. Dekodowanie Cykl 2. Pobierana jest młodsza część adresu Cykl 3. Pobierana jest starsza część adresu*szybkie wpisywanie adresu 16bitowego do PC PUSH HL (instrukcja odłożenia na stos pary rejestrów H i L) Cykl 1.*na magistralę adresową wysyłana jest zawartość licznika rozkazów PC* generowane są sygnały: pobrania rozkazu M1, dostępu do pamięci MREQ i odczytu pamięci RD w stanie niskim* mniej więcej po upłynięciu taktu zegarowego od wygenerowania ww. sygnałów na magistrali danych ustala się bajt rozkazu spod wskazanego przez PC adresu, który jest pobierany do rejestru rozkazów, a następnie dekodowany* zawartość licznika rozkazów PC zwiększa się o 1, a procesor przystępuje do wykonania rozkazu Cykl 2. *pod adres komórki pamięci wskazanej przez zmniejszony o 2 wskaźnik stosu SP zapisywana jest młodsza część rejestru 16bitowego podanego jako argument rozkazu Cykl 3. Do komórki o adresie wskazanym przez zmniejszony o 1 wskaźnik stosu SP zapisywana jest starsza część rejestru 16bitowego podanego jako argument rozkazu*Wskaźnik stosu jest ustawiany na komórkę pamięci o adresie wskazującym na młodszą część rejestru 16bitowego POP HL (jest to instrukcja pobrania zawartości stosu i umieszczenia jej w rejestrach H i L) Cykl 1.*na magistralę adresową wysyłana jest zawartość licznika rozkazów PC *generowane są sygnały: pobrania rozkazu M1, dostępu do pamięci MREQ i odczytu pamięci RD w stanie niskim*mniej więcej po upłynięciu taktu zegarowego od wygenerowania ww. sygnałów na magistrali danych ustala się bajt rozkazu spod wskazanego przez PC adresu, który jest pobierany do rejestru rozkazów, a następnie dekodowany *zawartość licznika rozkazów PC zwiększa się o 1, a procesor przystępuje do wykonania rozkazu Cykl 2. zawartość wierzchołka stosu, która została zaadresowana przez procesor wskaźnikiem SP-2 zostaje przeniesiona do starszej części rejestru HL * Przy odczycie wskaźnik stosu zwiększa się o 1 Cykl 3. zawartość stosu, która została zaadresowana przez procesor wskaźnikiem SP-1 zostaje przeniesiona do młodszej części rejestru HL* Przy odczycie wskaźnik stosu zwiększa się o 1
Z80 - do CLK sinus prostokątny, do RES z węzła wchodzi opornik (od Ucc) i kondensator (od masy) Z80+ROM(2764) - A0 do A12 i od D0 do D7 razem, A13 razem z MREQ przez NANDa do CE, RD do OE, PGM i VPP do +Ucc Z80+RAM(6264) - A0 do A12 i od D0 do D7 razem, WR do WR, RD do OE, MREQ do CS1, A13 do CS2 Z80+WE/WY(8255) - D0 do D7, A0, A1, WR, RD razem, A2 do A7 i IORQ przez NANDa do CS 8051 - do X1 wpada kondensator idący od masy, za kondensatorem odbijamy, wstawiamy taki kondensator z kwadracikiem między okładkami i wpadamy do X2 lecz za tym dziwnym kondensatorem również odbijamy i wpadamy przez kondensator do masy ;) 8051+ROM(2764 przez 74LS373) - do E1 wpada Ucc, do RES wpada z węzła kondensator z Vcc i opornik z masy, P0 do P7 z D0 do D7 w obydwu, P20 do P27 z A8 do A12, PSEN do OE, ALE do G, Q0 do Q7 z A0 do A7, CE uziemiamy, PGM i Vpp do Ucc 8051+RAM(6264 przez 74LS373) - Do RES wpada z węzła kondensator z Vcc i opornik z masy, P0 do P7 z D0 do D7 w obydwu, ALE do G, P20 do P24 z A8 do A12, P36 do WR, P37 do OE. CS, GND, OC uziemiamy
8051+elementy