Introduktion :
EN mikroprocessor er en multifunktionel, programmerbar, ur-drevet, register-baseret elektronisk enhed, der læser binære instruktioner fra en lagerenhed kaldet hukommelse, accepterer binære data som input og behandler data i henhold til disse instruktioner og giver resultater som output. En 8085 mikroprocessor, er en anden generation af 8-bit mikroprocessor og er grundlaget for at studere og bruge alle de mikroprocessorer, der er tilgængelige på markedet.
Hvorfor bruge registre i 8085 mikroprocessor?
Her er nogle grunde til, at registre bruges i 8085-mikroprocessoren:
- Midlertidig lagring: Registre bruges som midlertidige lagringssteder for data, der skal behandles af mikroprocessoren. For eksempel, når du udfører aritmetiske operationer, gemmes operanderne typisk i registre.
- Adressering: Registre bruges til at adressere hukommelsesplaceringer i 8085-mikroprocessoren. Programtæller-registret (PC) holder styr på hukommelsesplaceringen for den aktuelle instruktion, mens stackpointer-registret (SP) holder styr på toppen af stakken.
- Input/Output: Registre bruges til at kommunikere med input/output (I/O) enheder. Eksempelvis bruges akkumulatorregistret (A) til at kommunikere med databussen, som er forbundet med I/O-enheder.
- Statusinformation: Registre bruges til at gemme statusoplysninger om mikroprocessorens tilstand. Flagregisteret gemmer f.eks. information om resultaterne af aritmetiske og logiske operationer, herunder om et resultat er negativt, nul eller bære.
- Optimering: Registre bruges til at optimere mikroprocessorens ydeevne. Ved at bruge registre til at gemme ofte brugte data og instruktioner, kan mikroprocessoren få adgang til disse oplysninger hurtigere, end hvis den skulle hente dem fra hukommelsen.
Registrerer i 8085:
(a) registre til generelle formål – 8085 har seks generelle registre til at gemme 8-bit data; disse er identificeret som B, C, D, E, H og L. Disse kan kombineres som registerpar – BC, DE og HL, for at udføre en 16-bit operation. Disse registre bruges til at lagre eller kopiere midlertidige data, ved hjælp af instruktioner, under afviklingen af programmet.
(b) registre med specifikke formål –
- Akkumulator: Akkumulatoren er et 8-bit register (kan gemme 8-bit data), der er den del af den aritmetiske og logiske enhed (ALU). Efter udførelse af aritmetiske eller logiske operationer gemmes resultatet i akkumulator. Akkumulator er også defineret som register A. Flagregistre:
Flagregistret er et specialregister, og det er helt anderledes end andre registre i mikroprocessor. Den består af 8 bits, og kun 5 af dem er nyttige. De tre andre efterlades ledige og bruges i de fremtidige Intel-versioner. Disse 5 flag indstilles eller nulstilles (når flagværdien er 1, siges den at være indstillet, og når værdien er 0, siges den at blive nulstillet ) efter en operation i henhold til datatilstand for resultatet i akkumulatoren og andre registre. De 5 flagregistre er:- Tegnflag: Det optager den syvende bit af flagregistret, som også er kendt som den mest betydningsfulde bit. Det hjælper programmøren til at vide, om det tal, der er gemt i akkumulatoren, er positivt eller negativt. Hvis fortegnsflaget er sat, betyder det, at tallet gemt i akkumulatoren er negativt, og hvis det nulstilles, så er tallet positivt. Zero Flag: : Det optager den sjette bit af flagregisteret. Den er indstillet, når operationen udført i ALU'en resulterer i nul (alle 8 bit er nul), ellers nulstilles den. Det hjælper med at bestemme, om to tal er lige store eller ej. Auxiliary Carry Flag: Det optager den fjerde bit af flagregisteret. I en aritmetisk operation, når et bæreflag genereres af den tredje bit og sendes videre til den fjerde bit, så sættes Auxiliary Carry-flag. Hvis ikke, nulstilles flaget. Dette flag bruges internt til BCD (Binary-Coded decimal Number) operationer. Bemærk - Dette er det eneste flagregister i 8085, som ikke er tilgængeligt for brugeren. Paritetsflag: Det optager den anden bit af flagregistret. Dette flag tester for antallet af 1'ere i akkumulatoren. Hvis akkumulatoren har lige tal på 1'ere, så sættes dette flag, og det siges at være lige paritet. På den anden side, hvis antallet af 1'ere er ulige, nulstilles det, og det siges at være ulige paritet. Bæreflag: Det optager den nulte bit af flagregistret. Hvis den aritmetiske operation resulterer i en carry (hvis resultatet er mere end 8 bit), så sættes Carry Flag; ellers nulstilles den.
(c) Hukommelsesregistre – Der er to 16-bit registre, der bruges til at holde hukommelsesadresser. Størrelsen af disse registre er 16 bit, fordi hukommelsesadresserne er 16 bit. De er :-
- Programtæller: Dette register bruges til at sekvensere udførelsen af instruktionerne. Programtællerens funktion er at pege på den hukommelsesadresse, hvorfra den næste byte skal hentes. Når en byte (maskinkode) hentes, øges programtælleren med én for at pege på den næste hukommelsesplacering. Stack Pointer: Den bruges som en memory pointer. Den peger på en hukommelsesplacering i læse/skrivehukommelsen, kaldet stakken. Den øges/sænkes altid med 2 under push- og pop-drift.
- Tegnflag (7. bit): Det er nulstillet(0), hvilket betyder, at tal gemt i akkumulatoren er positivt. Nulflag (6. bit): Det er nulstillet(0), og resultatet af de operationer, der udføres i ALU'en, er således ikke-nul. Auxiliary Carry Flag (4. bit): Vi kan se, at b3 genererer en carry, som tages af b4, således at auxiliary Carry flag bliver sat (1). Paritetsflag (2. bit): Det er nulstillet(0), det betyder, at pariteten er ulige. Akkumulatoren har et ulige antal 1'ere. Bæreflag (0. bit): Det er indstillet (1), output resulterer i mere end 8 bit.
Brug af registre for 8085 mikroprocessor:
Her er nogle almindelige anvendelser af de forskellige registre i 8085-mikroprocessoren:
- Akkumulator (A) register: Akkumulatorregisteret er det mest almindeligt anvendte register i 8085 mikroprocessoren. Det bruges til aritmetiske og logiske operationer samt til input/output (I/O) operationer. Akkumulatoren bruges også som et midlertidigt lagersted for data.
- Program Counter (PC) register: PC registeret bruges til at holde styr på hukommelsesplaceringen for den aktuelle instruktion. Når en instruktion udføres, inkrementeres pc-registret automatisk for at pege på den næste instruktion i hukommelsen.
- Stack Pointer (SP) register: SP registeret bruges til at holde styr på toppen af stakken. Stakken bruges til midlertidig lagring af data og returadresser under subrutineopkald.
- Flagregister: Flagregisteret bruges til at gemme statusinformation om resultaterne af aritmetiske og logiske operationer, herunder om et resultat er negativt, nul eller bære.
- Registre til generelle formål (B, C, D, E, H og L): Disse registre bruges til generel lagring af data, såvel som til adressering af hukommelsesplaceringer. De kan bruges i par som 16-bit registre, såsom BC, DE og HL, til mere effektiv adressering af hukommelsesplaceringer.
- Instruktionsregister (IR) og maskincyklusregister (MCR): Disse registre bruges internt af mikroprocessoren til at afkode instruktioner og styre timingen af maskincyklusser.
Funktionerne i disse registre er:
- Alle registrene i 8085-mikroprocessoren er direkte tilgængelige af den aritmetiske og logiske enhed (ALU), hvilket muliggør effektiv behandling af data.
- Akkumulatorregistret bruges som standarddestination for de fleste aritmetiske og logiske instruktioner, hvilket forenkler programmeringen.
- De generelle registre kan bruges til at gemme data under beregninger, men de kan også bruges til at holde hukommelsesadresser, hvilket gør dem nyttige til at få adgang til hukommelsesplaceringer.
- Programtæller- og stakpointerregistrene er afgørende for styring af strømmen af instruktioner og data i et program.
- Flagregisteret giver værdifuld information om resultaterne af aritmetiske og logiske operationer, hvilket muliggør effektiv beslutningstagning i programmer.
- Instruktionsregisteret gemmer den aktuelle instruktion, der udføres, hvilket muliggør effektiv afkodning og styresignalgenerering af styreenheden.
Fordele:
- Hurtig adgang: Registre giver en hurtig og effektiv måde at få adgang til data og udføre operationer på. Da registrene er placeret inde i processoren, kan de tilgås hurtigt uden at skulle vente på, at data hentes fra hukommelsen. Reduceret hukommelsesadgang: Brugen af registre kan hjælpe med at reducere antallet af krævede hukommelsesadgange, hvilket kan forbedre systemets overordnede ydeevne. Specialiseret funktionalitet: Hvert register i 8085-mikroprocessoren har en specifik funktion, såsom akkumulatoren til aritmetiske operationer og programtælleren til lagring af adressen på den næste instruktion. Denne specialiserede funktionalitet kan gøre programmering og fejlfinding lettere. Reduceret kompleksitet: Ved at levere dedikerede registre til specifikke formål reducerer 8085-mikroprocessoren kompleksiteten af programmerings- og eksekveringsprocessen.
Ulemper:
- Begrænset lagerkapacitet: 8085 mikroprocessoren har et begrænset antal registre, som kan begrænse mængden af data, der kan lagres og manipuleres på ethvert givet tidspunkt. Komplekse adresseringstilstande: Nogle af adresseringstilstandene, der bruges i 8085-mikroprocessoren, kan være komplekse, hvilket kan gøre programmering vanskeligere. Kontekstskift: I nogle tilfælde kan skift mellem forskellige sæt af registre tilføje overhead og kompleksitet til programmeringsprocessen. Mangel på fleksibilitet: Det faste antal og funktion af registre i 8085 mikroprocessoren kan begrænse systemets fleksibilitet og gøre det sværere at tilpasse sig skiftende krav.