Extras din curs
Z80 contine în plus fata de 8080, ca si componente structurale specifice, registrele de 8 biti A’, F’, B’, C’, D’, E’, H’, L’ numite secundare, alaturi de registrele principal A, F, B, C, D, E, H, L. Din punct de vedere hardware, mZ80 opereaza conform structurii din figura 1.2 cu un singur set de registre. Utilizând instructiunile de schimb al continutului între registrele principale si secundare (AF«A’F’, BC«B’C’, DE«D’E’, HL«H’L’) din punct de vedere al programatorului microprocesorul poate efectua operatii cu ambele grupuri de registre.
Microprocesorul Z80 contine doua registre index IX si IY de 16 biti, utilizabile pentru adresarea indexata a locatiilor de memorie. În aceasta adresare registrul index contine adresa unei locatii de memorie numita baza. Instructiunile care utilizeaza acel tip de adresare, mai contin un octet suplimentar numit deplasament, care se adauga la baza formând o adresa (un numar în cod complementar fata de 2).
Alte componente structurale specifice microprocesorul Z80: - registrul de reâmprospatare R, registrul pentru vectorul de întrerupere IV, bistabilii pentru validare întreruperi IFF1, IFF2 si bistabilii de mod de întrerupere IMFa si IMFb.
Din punctul de vedere al programatorului structura interna a microprocesorului Z80 apare ca în figura urmatoare.
2.4 Functionarea unui microprocesor pe 8 biti pentru executia instructiunilor
O instructiune a unui microprocesor pe 8 biti este definita prin unul sau mai multi octeti (1¸4 pentru Z80) plasati la adrese succesive de memorie în memoria de instructiuni. Dintre acesti octeti unul sau doi specifica codul operatiei de executat de catre microprocesor, iar ceilalti octeti reprezinta date si adrese.
Adresele pot fi ale registrelor interne ale microprocesorului, ale memoriei, ale circuitelor de interfata, adrese de salt sau adrese de subrutine, în functie de tipul instructiunii. Codul operatiei (primul sau primii doi octeti) se extrage din memorie si se decodifica în registrul de instructiuni. Rezultatul decodificarii este interpretat de catre unitatea de control si sincronizare care trimite componentelor executive ale microprocesorului (UAL, acumulator, multiplexorul, etc.) si componentelor microsistemului (prin magistrala de control) comenzile necesare executiei propriu-zise a instructiunii. Astfel, executia (propriu-zisa) unei instructiuni de catre microprocesor se realizeaza printr-o secventa specifica de operatii de baza, începând cu extragerea codului operatiei si continuând în functie de instructiune cu operatii de citire/scriere din memorie sau de intrare/iesire de la un circuit de interfata sau spre un circuit de interfata. Fiecare dintre aceste operatii de baza dureaza 3¸6 perioade ale unui semnal de sincronizare (tact). O astfel de perioada T(T1, T2, …) defineste o stare a microprocesorului, iar strarile corespunzatoare unei operatii de baza definesc un ciclu masina al microprocesorului. O instructiune se executa pe durata a 1¸5 cicli masina (microprocesorul Z80) care definesc un ciclu instructiune.
Functionarea pe stari si cicluri de masina a microprocesorului pentru executia unor exemple de instructiuni (microprocesorul Z80)
Exemplul 1. LD D, C
Prin executia acestei instructiuni se executa încarcarea (Load) continutul registrului intern C în registrul intern D. Instructiunea se executa pe durata unui singur ciclu masina M1, ciclul de extragere a codului operatiei dupa cum urmeaza.
M1(T1) – Continutul registrului PC (numarator de adrese), în care se gaseste adresa primului octet al instructiunii (în acest exemplu codul operatiei) este încarcat în registrul de adresare cu iesire pe magistrala de adrese, realizându-se astfel adresarea memoriei de instructiuni.
M1(T2) – Continutul PC este incrementat cu o unitate, stabilindu-se astfel adresa urmatorului octet care trebuie extras din memorie. Starea T2 acopera timpul de acces al memoriei.
M1(T3) – Unitatea de control si sincronizarea UCS comanda …. starii magistralei externe de date în registrul de I/E al microprocesorului si apoi transferul octetului în registrul de instructiuni prin magistrala interna de date.
Starile M1(T1, T2, T3) sunt identice la executia oricarei instructiuni si sunt identice ca procedura.
M1(T4) – sub comanda UCS se transfera continutul registrului sursa C în registrul temporar al UAL.
M1(T5) – se transfera continutul registrului temporar al UAL în registrul D.
2.5 Instructiunile microprocesorului Z80
O instructiune este reprezentata de un set de caractere care definesc o operatie si eventual alte instructiuni necesare calculatorului pentru a executa instructiunea data.
Operatiile pe care le poate efectua microprocesorul Z80 pot fi grupate astfel:
- transferuri de date;
- operatii aritmetice si logice;
- deplasari si rotatii;
- manipulari de biti;
- salturi, apeluri de subrutine, revenire din subrutine;
- operatii de I/E si de comanda ale microprocesorului.
Instructiunile microprocesorului Z80 se reprezinta pe 1¸4 octeti si contin ca subset instructiunile microprcesorul 8080. Formatul instructiunilor cuprinde:
- codul operatiei (1,2,3 octeti);
- data – 1 sau 2 octeti;
- deplasarea – 1 octet;
- codul echipamentului pe 1 octet;
- adresa absoluta sub forma a doi octeti succesivi.
Preview document
Conținut arhivă zip
- microprocesoare2.DOC