Documente Academic
Documente Profesional
Documente Cultură
Pentru a putea scri un program in limbajul de asamblare 8080 programatorul trebuie sa cunoasca
structura generala a MP 8080 si a microcalculatorului pe care se lucreaza (realizat pe baza acestuia).
1 - WR
2 - DBIN
3 - INTE
4 - HLDA
5 - WAIT
6 - SYNC
7 - HOLD
8 - INT
9 - READY
A - Ф1
B - Ф2
C - RESET
Zona registrelor consta dintr-o zona de memorie RAM organizata in 6 registre de catre 16 biti fiecare:
6 registre generale de lucru (B, C, D, E, H, L), care pot fi adresate ca perechi de registre cu lungimea de
16 biti sau individual ca registre de 8 biti;
Numaratorul de adrese PC contine adresa instructiunii ce urmeaza a fi executata. Continutul lui este
accesibil si poate fi modificat prin program. Indicatorul de stiva SP contine totdeauna adresa din
memorie(alocata pentru stiva) in care sa depus ultimul cuvint (indica virful stivei). Stiva se construieste
in RAM si creste in jos, adica in sensul de scadere a numarului adresei. SP este accesibuil
programatorului penrtu initializarea zonei din RAM ca stiva.
Registrul temporar W,S nu este accesibil programatorului si este folosit de procesor pentru executia
interna a instructiunilor. O informatie de 1 octet poate fi transferata intre zona de memorie afectata
registrelor si magistrala interna utizind circuitele pentru selectarea unui registru-selectie si
multiplexorul. Operatia de incrimentare (decrementare) a unui dublu registru este realizata cu ajutorul
circuitelor din blocul operator ±1, la iesirea caruia este conectat si registrul de 16 biti servind la
pastrarea adresei de memorie trimisa de procesor pe magistrala externa de adrese cu ajutorul
circuitelor de comanda continute in blocul denumit BUFER ADRESE.
un registru temporar de 8 biti care nu este accesibil utilizatorului fiind folosit pentru memorarea celui
de-al doilea operand;
5 indicatori de conditii;
UAL este legata de registrul temporar, acumulatorul temporar si registrul indicatorilor de conditii si
permite executia operatiilor aritmetice, logice si de deplasare. Rezultatul unei operatii se extrage din
UAL pe magistrala interna de date si se introduce in acumulator,indicatorii de conditie fiind pozitionati in
conformitate cu valoarea rezultatului si cu tipul instructiunii curente.
In timpul executiei unei instructiuni codul instructiunii este transferat in registrul de instructiuni a carui
iesire este transferata cu ajutorul decodificatiei de instructiuni. Iesirea decodificatorului asociata cu
semnalele de cias este expluatata de circuitul de comanda si temporizare care genereaza semnale ce
dirijeaza activitatea interna si externa a procesorului. Circuitul bufer BUS DATE este folosit pentru
izolarea magistralei interne de date a procesorului de magistrala externa (D0-D7). Intr-o operatie de
iesire continutul magistralei interne se afla in zona "tampon" de 8 biti de unde mai departe este
transmisa spre exterior.
Intr-o operatie de intrare datele de pe magistrala externa sunt transferate in zona tampon a magistralei
interne si de aici pe magistrala interna a procesorului.
Semnalele externe
In figura 2 sunt prezentate cele 40 de conexiuni exterioare ale MP I8080.
A0–A15 – magistrala de adrese de 16 biti . Are iesirea 3 stari (tri-state) si este activa sus. Aceasta poate
adresa o memorie de 64 Kocteti (216) precum si dispozitive periferice de intrare /iesire (I/E).
D0-D7 – magistrala de date are lungimea de 8 biti, este bidirectionala are I/E active sus de tip tri-state.
Aceasta permite schimbul de informatie dintre pocesor si memorie externa respectiv dintre procesor si
dispozitiv I/E.
SYNC – iesire, semnal de sincronizare generat de MP prin care se specifica inceputul fiecarui ciclu-
masina. Pe durata semnalului SYNC MP aplica pe DB (magistrala de date) cuvintul de stare (ce indica
tipul opertiei de efectuat in ciclul-masina respectiv).
DBIN – semnal generat de MP care informeaza ca MP poate prelua datele aplicate pe DB de catre
memorie sau periferice.
WR – (activ in starea 0). Semnal generat de MP care informeaza memoria sau perifericele ca informatia
(bitul) aplicat pe DB poate fi citita.
READY – semnaal extern care prin valoarea READY=»1» informeaza MP ca informatia cerutaa este
accesibila (valida) pe magistrala de date.
WAIT – semnal generat pe MP prin care se indica faptul ca se astepta o data (informatie) de la memorie
sau periferic, prin care se cere ca MP sa elibereze magistralele (buferele de iesire ale MP sunt trecute in
starea de inalta impedanta). In acest caz magistralele sunt administrate de catre periferic in scopul unui
acces direct la memoria DAM (Direct acces memory).
HLDA – semnal emis de MP prin care acesta confirma trecerea buferealor de magistrala in stare de inalta
impedanta.(ca urmare a primirii semnalului HOLD).
INT – semnal emis de catre un periferic prin care acesta cere interventia MP.
INTE – semnal al unui fanion din MP care indica posibilitatea(INTE=1) sau imposibilitatea (INTE=0) de
intrerupere a MP la primirea unei cereri de intrerupere (INT=1) . Fanionul INTE poate fi comandat din
program.
RESET – semnal exterior, semnal de initializare care aduce numaratorul de adrese la »0», deci MP reia
rularea programului de la adresa «0». Tot acest semnal pune pe «0» si semnalele HLDA si INTE.
Algoritmul de functionare a MP I8080
Intervalul de timp necesar procesorului de a schimba informatia cu exteriorul este denumit ciclul-
masina. Intervalul de timp necesar pentru executia unei instructiuni este denumit ciclul-instructiune.
Executarea unei instructiuni (ciclul instructiune) in functie de in functie de complexitatea sa necsita de la
1 pina la 5 cicluri masina (M1-M5). La rindul sau fiecare ciclu masina este compus de la 3 pina la 5 stari
(T1, T2, T3, T4, T5). O stare fiind definita ca o perioada a semnalului de tact 1. In primele 3 stari ale
primului ciclu-masina (M1) primul octet al instructiunii este adus din memorie in registru de instructiuni.
Starea T4 este utilizata pentru decodificarea codului instructiunii. Daca instructiunea este compusa
dintr-un singur octet este necesara si starea T5 pentru executia acesteea (in astfel de cazuri ciclul-
instructiune necesita un singur ciclu-masina ce consuma 5 stari). Daca instructiunea este compusa din 2
sau 3 octets, dupa ciclul FETCH (M1) (aducerea codului instructiunii) mai este necesar si alte cicluri-
masina. Fiecare ciclu masina din cele 5 posibile realizeaza o anumita operatie exprimata prin cuvintul de
stare (citire, inscriere etc.). Aceste operatii sunt inlantuite in cadrul ciclului-instructiune in functie de
tipul instructiunii, dar ca regula se stie ca totdeauna primul ciclu cu care incepe instructiunea este
FETCH. Pentru fiecare ciclu-masina MP genereaza semnalul de sincronizare SYNC din fiecare din cele 5
cicluri-masina posibile MP genereaza un cuvint de stare ce indica spre exterior ce fel de operatii se
realizeaza in ciclul-masina curent. Deci magistrala de date este multiplexata intre cuvintul de stare si
datele de intrare sau iesire din MP. Pentru ciclurile-masina si cicluruile-instructiune se pot scri relatiile
de timp:
Pentru generarea semnalelor de tact 2 se utilizeaza un circuit generator de orologiu (integrat separat
de 8080). Acesta este circuitul 8224 KP 580 GF24 care e destinat pentru sincronizarea microsistemelor
pe baza microprocesoarelor in studiu. Generatorul in afara de semnalele 1 si 2 mai produce semnalele
READY si RESET. Totodata mai produce semnalul pentru strobarea cuvintului de stare STSB pe durata
impulsului SYNC. Conectarea genertorului de orologiu este dat in fig. 1. MP are 10 tipuri diferite de
operatii caracterizate fiecare de un cuvint de stare. Realizarea unei instructiuni se reduce la inlantuirea a
maxim 5 din aceste operatii (fiecare operatie executindu-se pe durata unui ciclu masina). Cuvintul de
stare PSW ce corespunde ciclului-masina in curs este generat de MP pe durata semnalului SYNC
multiplexat pe magistrala de date. Deoarecce magistrala de date va fi folosita pentru vehicularea datelor
incepind cu T3 inseamna ca pentru pastrarea cuvintului de stare pe intreaga durata a ciclului-masina,
acest cuvint de stare trebuie introdus intr-un registru. In acest scop microprocesorului i se ataseaza
circuitul integrat 8228 sau KP 580 BK 28, care este un amplificator de bufer de magistrala bidirectional si
latch pentru cuvintul de stare. Deoarece din cuvintul de stare in KP 580 BK 28 se vor obtine anumite
semnale de control, acest circuit este denumit si controler de sistem. MP impreuna cu generatorul de
orologiu , amplificatorul de magistrala si controlerul de sistem formeaza modul de unitate centrala de
procesoare. Pe durata impulsului SYNC cuvintul de stare generat de MP pe magistrala de date este
inscris in controlerul de sistem care este strobat (validat) de catre semnalul de strob STSTB produs de
generatorul de orologiu.
Aducerea instr.
Citirea instr.
Scrierea memoriei
Citire stiva
Scriere stva
Citire intrare
Scriere ieşire
Confirmare întrerupere
Confirmare HALT
5
6
D0
INTA
D1
WO
1
1
D2
STACK
D3
HALTA
1
D4
OUT
D5
M1
D6
INP
0
0
D7
MEMR
INTA
INTA
INTA
I/O W
I/O W
MEM W
MEM R
MEM W
MEM R
MEM R
Tab. 1 Mnemonicele bitilor pentru Processor State Word
Explicatiile pentru mnemonicele bitilor de PSW sunt in Tab. 1. Unul din aceste semnale este INTA. D0.
Este bitul care indica faptul ca o intrerupere prezentata microprocesorului a fost acceptata (numai daca
fanionul intern de autorizare a intreruperii are valoarea 1). Acest bit apare in ciclurile-masina
INTRERUPERE si HALT INTRERUPERE. In cursul acestor tipuri de cicluri prin configurarea lui D0 cu
semnalul DBIN se obtine un semnal cu care se poate incarca in acumultor un cuvint de pe magistrala de
date DBASE. Acest cuvint este generat de catre perifericul ce a solicitat intreruperea fiind considerat o
instructiune RESTART sau CALL. De fapt acest cuvint contine adresa subrutinei necesare perifericului
solicitat;
- WO (WRITE OUTPUT), D1. Acest bit evidentiaza faptul ca ciclul care debuteaza va realiza o operatie de
transfer de informatie de la procesor inspre exterior. Aceste cicluri (cind WO este activ) corespund
inscrierii in memorie (stiva) sau la un periferic.
- STACK, D2. Deorece stiva se realizeaza in memoria externa acest bit diferentiaza intre operatiile
citire/inscriere stiva si operatiile inscriere/citire memorie. In acest ciclu pe magistrala de adresare se afla
adresa virfului stivei.
- HLTA, D3. Acest bit este prezentat in ciclurile de tip HALT INTRERUPERE si semnalizeaza exteriorul ca
MP si-a blocat in urma executarii unei instructiuni HALT. Deblocarea MP se poate face fie printr-o
intrerupere externa (daca INTE=1) fie printr-o comanda de initializare RESET.
- OUT, D4. Este pus acest bit cind se efectuiaza operatiile de iesire la un periferic. Intr-un astfel de ciclu
magistrala de adresare contine adresa perifericului, iar cea de date cuvintul transmis la periferic valid in
momentul cind semnalul WR devine activ.
- M1-D5. Bitul 5 din cuvintul de stare apare totdeauna in primul ciclu de citire a instructiunii (FETCH).
Apare si in ciclurile intrerupere, HALT INTRERUPERE deoarece in acestea se citeste o instructiune
RESTART sau CALL.
- IND-D6.Ca si bitul D4 acest bit indica lucrul cu perifericul, dar sensul informatieieste de la periferic la
procesor, adica de intrare . In acest ciclu magistrala de adrese contine adresa perifericului, iar pe
magistrala de date perifericul trebuie sa plaseze cuvintul care sa fie valid in momentul cind MP activeaza
semnalul DBIN.
- MEMR, D7. Utimul bit al cuvintului de stare identifica un ciclu de citire a memoriei. Informatia din
memorie trebuie sa fie valida pe DP la aparitia semnalului DBIN.
Tabela celor 10 cuvinte de stare generate de MP pe durata semnalului sync precum si semnalele
obtinute pentru magistrala de control vezi figura2.
Pentru cele 10 cuvinte de stare diferite controlerul de sistem produce printr-o logica interna 5 semnale
de control (care formeaza propriul zis semnalele magistralei de control) Aceste semnale de control sunt:
MEM R=D7 * DBIN Este generat prin ecuatia de mai sus si apare in ciclurile cind se efectuiaza o citire la
memorie:
INTA = D0 * DBIN Apare in ciclurile de acceptare a unei intreruperi in scopul fortarii din exterior pe DB a
codului unei instructiuni RESTART sau CALL.