logo

Registre ale microprocesorului 8085

Introducere:

A microprocesor este un dispozitiv electronic multifuncțional, programabil, acționat de ceas, bazat pe registre, care citește instrucțiuni binare de pe un dispozitiv de stocare numit memorie, acceptă date binare ca intrare și procesează datele în conformitate cu instrucțiunile respective și oferă rezultate ca ieșire. Un microprocesor 8085, este un microprocesor de a doua generație pe 8 biți și reprezintă baza pentru studierea și utilizarea întregului microprocesor disponibil pe piață.



java dublu la șir

De ce să folosiți Registers în microprocesorul 8085?

Iată câteva motive pentru care registrele sunt utilizate în microprocesorul 8085:

  1. Stocare temporară: registrele sunt folosite ca locații de stocare temporară pentru datele care trebuie procesate de microprocesor. De exemplu, atunci când se efectuează operații aritmetice, operanzii sunt de obicei stocați în registre.
  2. Adresare: Registrele sunt utilizate pentru adresarea locațiilor de memorie în microprocesorul 8085. Registrul contorului de programe (PC) ține evidența locației de memorie a instrucțiunii curente, în timp ce registrul indicatorului de stivă (SP) ține evidența vârfului stivei.
  3. Intrare/Ieșire: Registrele sunt utilizate pentru comunicarea cu dispozitivele de intrare/ieșire (I/O). De exemplu, registrul acumulatorului (A) este utilizat pentru comunicarea cu magistrala de date, care este conectată la dispozitivele I/O.
  4. Informații de stare: Registrele sunt utilizate pentru stocarea informațiilor de stare despre starea microprocesorului. De exemplu, registrul flag stochează informații despre rezultatele operațiilor aritmetice și logice, inclusiv dacă un rezultat este negativ, zero sau purtare.
  5. Optimizare: Registrele sunt folosite pentru a optimiza performanța microprocesorului. Folosind registre pentru a stoca datele și instrucțiunile utilizate frecvent, microprocesorul poate accesa aceste informații mai rapid decât dacă ar fi trebuit să le recupereze din memorie.

Înregistrări în 8085:



(a) Registre cu scop general – 8085 are șase registre de uz general pentru a stoca date pe 8 biți; acestea sunt identificate ca- B, C, D, E, H și L. Acestea pot fi combinate ca perechi de registre – BC, DE și HL, pentru a efectua operații pe 16 biți. Aceste registre sunt folosite pentru a stoca sau copia date temporare, prin utilizarea instrucțiunilor, în timpul execuției programului.

(b) Registre cu scop specific –

    Acumulator: Acumulatorul este un registru de 8 biți (poate stoca date de 8 biți) care face parte din unitatea aritmetică și logică (ALU). După efectuarea operațiilor aritmetice sau logice, rezultatul este stocat în acumulator. Acumulatorul este, de asemenea, definit ca registru A. Registre flag: Registrul steag este un registru cu scop special și este complet diferit de alte registre din microprocesor. Este format din 8 biți și doar 5 dintre ei sunt utili. Celelalte trei sunt lăsate vacante și sunt utilizate în viitoarele versiuni Intel. Aceste 5 steaguri sunt setate sau resetate (când valoarea steagului este 1, atunci se spune că este setat și când valoarea este 0, atunci se spune că este resetat ) după o operațiune în funcție de starea datelor a rezultatului în acumulator și alte registre. Cele 5 registre de steag sunt:
      Sign Flag: Ocupă al șaptelea bit al registrului de steag, care este, de asemenea, cunoscut ca bitul cel mai semnificativ. Ajută programatorul să știe dacă numărul stocat în acumulator este pozitiv sau negativ. Dacă semnul este setat, înseamnă că numărul stocat în acumulator este negativ, iar dacă este resetat, atunci numărul este pozitiv. Zero Flag: : Ocupă al șaselea bit al registrului de steag. Este setat, când operația efectuată în ALU are ca rezultat zero (toți cei 8 biți sunt zero), altfel este resetat. Ajută la determinarea dacă două numere sunt egale sau nu. Auxiliary Carry Flag: Ocupă al patrulea bit al registrului de steag. Într-o operație aritmetică, atunci când un indicator de transport este generat de al treilea bit și transmis la al patrulea bit, atunci este setat indicatorul de transport auxiliar. Dacă nu, steag este resetat. Acest indicator este utilizat intern pentru operațiunile BCD (Număr zecimal codat binar). Notă - Acesta este singurul registru de steag din 8085 care nu este accesibil de către utilizator. Flag de paritate: Ocupă al doilea bit al registrului de pavilion. Acest steag testează numărul de 1 din acumulator. Dacă acumulatorul deține un număr par de 1, atunci acest steag este setat și se spune că are paritate pară. Pe de altă parte, dacă numărul de 1 este impar, atunci este resetat și se spune că este paritate impar. Carry Flag: Ocupă bitul zero al registrului de flag. Dacă operația aritmetică are ca rezultat un carry (dacă rezultatul este mai mare de 8 biți), atunci este setat Carry Flag; altfel se reseteaza.

(c) Registre de memorie – Există două registre de 16 biți utilizate pentru a păstra adresele de memorie. Dimensiunea acestor registre este de 16 biți deoarece adresele de memorie sunt de 16 biți. Sunt :-



    Program Counter: Acest registru este folosit pentru a ordona execuția instrucțiunilor. Funcția contorului programului este de a indica adresa de memorie de la care urmează să fie preluat următorul octet. Când un octet (cod mașină) este preluat, contorul programului este incrementat cu unu pentru a indica următoarea locație de memorie. Stack Pointer: este folosit ca indicator de memorie. Indică o locație de memorie în memoria de citire/scriere, numită stivă. Este întotdeauna incrementat/decrementat cu 2 în timpul funcționării prin apăsare și pop.
      Sign Flag (al 7-lea bit): este resetat(0), ceea ce înseamnă că numărul stocat în acumulator este pozitiv. Flag zero (al 6-lea bit): este resetat(0), astfel rezultatul operațiunilor efectuate în ALU este diferit de zero. Auxiliary Carry Flag (al 4-lea bit): Putem vedea că b3 generează o transportare care este preluată de b4, astfel că flagul de transport auxiliar este setat (1). Flag de paritate (al doilea bit): este resetat(0), înseamnă că paritatea este impară. Acumulatorul deține un număr impar de 1. Carry Flag (al 0-lea bit): Este setat(1), ieșirea are ca rezultat mai mult de 8 biți.

Utilizări ale registrelor microprocesorului 8085:

câte fructe sunt acolo

Iată câteva utilizări comune ale diferitelor registre din microprocesorul 8085:

  1. Registrul acumulatorului (A): Registrul acumulatorului este cel mai frecvent utilizat registru în microprocesorul 8085. Este folosit pentru operații aritmetice și logice, precum și pentru operații de intrare/ieșire (I/O). Acumulatorul este folosit și ca locație temporară de stocare a datelor.
  2. Registrul Program Counter (PC): Registrul PC este utilizat pentru a ține evidența locației de memorie a instrucțiunii curente. Când o instrucțiune este executată, registrul PC este automat incrementat pentru a indica următoarea instrucțiune din memorie.
  3. Registrul Stack Pointer (SP): Registrul SP este utilizat pentru a ține evidența vârfului stivei. Stiva este utilizată pentru stocarea temporară a datelor și a adreselor returnate în timpul apelurilor subrutine.
  4. Registrul flag: registrul flag este utilizat pentru a stoca informații de stare despre rezultatele operațiilor aritmetice și logice, inclusiv dacă un rezultat este negativ, zero sau carry.
  5. Registre de uz general (B, C, D, E, H și L): Aceste registre sunt utilizate pentru stocarea datelor cu scop general, precum și pentru adresarea locațiilor de memorie. Ele pot fi utilizate în perechi ca registre de 16 biți, cum ar fi BC, DE și HL, pentru o adresare mai eficientă a locațiilor de memorie.
  6. Registrul de instrucțiuni (IR) și Registrul de ciclu al mașinii (MCR): Aceste registre sunt utilizate intern de microprocesor pentru a decoda instrucțiunile și a controla sincronizarea ciclurilor mașinii.

Caracteristicile acestor registre sunt:

  1. Toate registrele din microprocesorul 8085 sunt direct accesibile de către unitatea aritmetică și logică (ALU), permițând procesarea eficientă a datelor.
  2. Registrul acumulatorului este folosit ca destinație implicită pentru majoritatea instrucțiunilor aritmetice și logice, ceea ce simplifică programarea.
  3. Registrele de uz general pot fi utilizate pentru stocarea datelor în timpul calculelor, dar pot fi folosite și pentru a păstra adrese de memorie, făcându-le utile pentru accesarea locațiilor de memorie.
  4. Contorul de program și registrele pointerului de stivă sunt cruciale pentru gestionarea fluxului de instrucțiuni și date în cadrul unui program.
  5. Registrul steag oferă informații valoroase despre rezultatele operațiilor aritmetice și logice, permițând luarea eficientă a deciziilor în programe.
  6. Registrul de instrucțiuni stochează instrucțiunea curentă care se execută, permițând decodificarea eficientă și generarea semnalului de control de către unitatea de control.

Avantaje:

    Acces rapid: registrele oferă o modalitate rapidă și eficientă de a accesa date și de a efectua operațiuni. Deoarece registrele sunt localizate în interiorul procesorului, acestea pot fi accesate rapid fără a fi nevoie să așteptați ca datele să fie preluate din memorie. Acces redus la memorie: utilizarea registrelor poate ajuta la reducerea numărului de accesări la memorie necesare, ceea ce poate îmbunătăți performanța generală a sistemului. Funcționalitate specializată: Fiecare registru din microprocesorul 8085 are o funcție specifică, cum ar fi acumulatorul pentru operații aritmetice și contorul de programe pentru stocarea adresei următoarei instrucțiuni. Această funcționalitate specializată poate facilita programarea și depanarea. Complexitate redusă: prin furnizarea de registre dedicate pentru scopuri specifice, microprocesorul 8085 reduce complexitatea procesului de programare și execuție.

Dezavantaje:

    Capacitate limitată de stocare: microprocesorul 8085 are un număr limitat de registre, care pot restricționa cantitatea de date care pot fi stocate și manipulate în orice moment. Moduri de adresare complexe: Unele dintre modurile de adresare utilizate în microprocesorul 8085 pot fi complexe, ceea ce poate face programarea mai dificilă. Schimbarea contextului: În unele cazuri, comutarea între diferite seturi de registre poate adăuga supraîncărcare și complexitate procesului de programare. Lipsa flexibilității: numărul fix și funcția de registre din microprocesorul 8085 poate limita flexibilitatea sistemului și poate face mai dificilă adaptarea la cerințele în schimbare.