Introduksjon:
EN mikroprosessor er en flerbruks, programmerbar, klokkedrevet, registerbasert elektronisk enhet som leser binære instruksjoner fra en lagringsenhet kalt minne, aksepterer binære data som input og behandler data i henhold til disse instruksjonene og gir resultater som utdata. En 8085 mikroprosessor, er en andre generasjons 8-bits mikroprosessor og er basen for å studere og bruke all mikroprosessor som er tilgjengelig på markedet.
Hvorfor bruke Registers i 8085 mikroprosessor?
Her er noen grunner til at registre brukes i 8085-mikroprosessoren:
- Midlertidig lagring: Registre brukes som midlertidige lagringssteder for data som må behandles av mikroprosessoren. For eksempel, når du utfører aritmetiske operasjoner, lagres operandene vanligvis i registre.
- Adressering: Registre brukes til å adressere minneplasseringer i 8085-mikroprosessoren. Programtellerregisteret (PC) holder styr på minneplasseringen til gjeldende instruksjon, mens stabelpekerregisteret (SP) holder styr på toppen av stabelen.
- Input/Output: Register brukes til å kommunisere med input/output (I/O) enheter. For eksempel brukes akkumulatorregisteret (A) for å kommunisere med databussen, som er koblet til I/O-enheter.
- Statusinformasjon: Registre brukes til å lagre statusinformasjon om tilstanden til mikroprosessoren. For eksempel lagrer flaggregisteret informasjon om resultatene av aritmetiske og logiske operasjoner, inkludert om et resultat er negativt, null eller bære.
- Optimalisering: Registre brukes til å optimalisere ytelsen til mikroprosessoren. Ved å bruke registre til å lagre ofte brukte data og instruksjoner, kan mikroprosessoren få tilgang til denne informasjonen raskere enn om den måtte hente den fra minnet.
Registrerer i 8085:
(a) registre for generelle formål – 8085 har seks generelle registre for å lagre 8-bits data; disse er identifisert som B, C, D, E, H og L. Disse kan kombineres som registerpar – BC, DE og HL, for å utføre en 16-bits operasjon. Disse registrene brukes til å lagre eller kopiere midlertidige data, ved å bruke instruksjoner, under kjøringen av programmet.
(b) registre for spesifikke formål –
- Akkumulator: Akkumulatoren er et 8-bits register (kan lagre 8-bits data) som er delen av den aritmetiske og logiske enheten (ALU). Etter å ha utført aritmetiske eller logiske operasjoner, lagres resultatet i akkumulator. Akkumulator er også definert som register A. Flaggregistre:
Flaggregisteret er et spesialregister og det er helt annerledes enn andre registre i mikroprosessor. Den består av 8 biter og bare 5 av dem er nyttige. De tre andre er ledige og brukes i fremtidige Intel-versjoner. Disse 5 flaggene settes eller tilbakestilles (når verdien av flagget er 1, sies det å være satt og når verdien er 0, sies det å være tilbakestilt ) etter en operasjon i henhold til datatilstanden til resultatet i akkumulatoren og andre registre. De 5 flaggregistrene er:- Sign Flag: Det opptar den syvende biten i flaggregisteret, som også er kjent som den mest signifikante biten. Det hjelper programmereren å vite om tallet som er lagret i akkumulatoren er positivt eller negativt. Hvis skiltflagget er satt, betyr det at nummeret som er lagret i akkumulatoren er negativt, og hvis det tilbakestilles, så er tallet positivt. Zero Flag: : Den opptar den sjette biten av flaggregisteret. Den er satt når operasjonen utført i ALU resulterer i null (alle 8 biter er null), ellers tilbakestilles den. Det hjelper med å avgjøre om to tall er like eller ikke. Auxiliary Carry Flag: Det opptar den fjerde biten av flaggregisteret. I en aritmetisk operasjon, når et bæreflagg genereres av den tredje biten og sendes videre til den fjerde biten, settes Auxiliary Carry-flagg. Hvis ikke er flagget tilbakestilt. Dette flagget brukes internt for BCD (Binary-Coded desimal Number) operasjoner. Merk - Dette er det eneste flaggregisteret i 8085 som ikke er tilgjengelig for brukeren. Paritetsflagg: Det opptar den andre biten i flaggregisteret. Dette flagget tester for antall 1-er i akkumulatoren. Hvis akkumulatoren har partall på 1-er, blir dette flagget satt og det sies å ha partall. På den annen side hvis antallet 1-er er oddetall, tilbakestilles det og det sies å være oddetallsparitet. Bær flagg: Det opptar den nollte biten av flaggregisteret. Hvis den aritmetiske operasjonen resulterer i en carry (hvis resultatet er mer enn 8 bit), så settes Carry Flag; ellers nullstilles den.
(c) Minneregistre – Det er to 16-bits registre som brukes til å holde minneadresser. Størrelsen på disse registrene er 16 biter fordi minneadressene er 16 biter. De er :-
- Programteller: Dette registeret brukes til å sekvensere utførelsen av instruksjonene. Programtellerens funksjon er å peke på minneadressen som neste byte skal hentes fra. Når en byte (maskinkode) hentes, økes programtelleren med én for å peke til neste minneplassering. Stack Pointer: Den brukes som en minnepeker. Den peker på en minneplassering i lese-/skriveminnet, kalt stabelen. Den økes/reduseres alltid med 2 under push- og pop-operasjon.
- Sign Flag (7. bit): Det er tilbakestilt (0), som betyr at nummeret som er lagret i akkumulatoren er positivt. Nullflagg (6. bit): Det er tilbakestilt (0), og resultatet av operasjonene utført i ALU er derfor ikke null. Auxiliary Carry Flag (4. bit): Vi kan se at b3 genererer en carry som blir tatt av b4, dermed blir hjelpebæreflagg satt (1). Paritetsflagg (2. bit): Det er tilbakestilt(0), det betyr at paritet er oddetall. Akkumulatoren har et oddetall på 1-ere. Bæreflagg (0. bit): Det er satt (1), utdata gir mer enn 8 bit.
Bruk av registre for 8085 mikroprosessor:
Her er noen vanlige bruksområder for de forskjellige registrene i 8085-mikroprosessoren:
- Akkumulatorregister (A): Akkumulatorregisteret er det mest brukte registeret i 8085 mikroprosessoren. Den brukes til aritmetiske og logiske operasjoner, samt for input/output (I/O) operasjoner. Akkumulatoren brukes også som et midlertidig lagringssted for data.
- Program Counter (PC) register: PC-registeret brukes til å holde styr på minneplasseringen til gjeldende instruksjon. Når en instruksjon utføres, økes PC-registeret automatisk for å peke til neste instruksjon i minnet.
- Stack Pointer (SP) register: SP registeret brukes til å holde styr på toppen av stabelen. Stakken brukes til midlertidig lagring av data og returadresser under subrutineanrop.
- Flaggregister: Flaggregisteret brukes til å lagre statusinformasjon om resultatene av aritmetiske og logiske operasjoner, inkludert om et resultat er negativt, null eller bære.
- Generelle registre (B, C, D, E, H og L): Disse registrene brukes til generell lagring av data, så vel som for adressering av minneplasseringer. De kan brukes i par som 16-bits registre, slik som BC, DE og HL, for mer effektiv adressering av minneplasseringer.
- Instruksjonsregister (IR) og maskinsyklusregister (MCR): Disse registrene brukes internt av mikroprosessoren for å dekode instruksjoner og kontrollere tidspunktet for maskinsykluser.
Funksjonene til disse registrene er:
- Alle registre i 8085-mikroprosessoren er direkte tilgjengelige av den aritmetiske og logiske enheten (ALU), noe som muliggjør effektiv behandling av data.
- Akkumulatorregisteret brukes som standarddestinasjon for de fleste aritmetiske og logiske instruksjoner, noe som forenkler programmeringen.
- De generelle registrene kan brukes til å lagre data under beregninger, men de kan også brukes til å holde minneadresser, noe som gjør dem nyttige for å få tilgang til minneplasseringer.
- Programteller- og stabelpekerregistrene er avgjørende for å administrere flyten av instruksjoner og data i et program.
- Flaggregisteret gir verdifull informasjon om resultatene av aritmetiske og logiske operasjoner, noe som muliggjør effektiv beslutningstaking i programmer.
- Instruksjonsregisteret lagrer den gjeldende instruksjonen som utføres, og muliggjør effektiv dekoding og styresignalgenerering av kontrollenheten.
Fordeler:
- Rask tilgang: Registre gir en rask og effektiv måte å få tilgang til data og utføre operasjoner på. Siden registrene er plassert inne i prosessoren, kan de nås raskt uten å måtte vente på at data skal hentes fra minnet. Redusert minnetilgang: Bruken av registre kan bidra til å redusere antallet minnetilganger som kreves, noe som kan forbedre den generelle ytelsen til systemet. Spesialisert funksjonalitet: Hvert register i 8085-mikroprosessoren har en spesifikk funksjon, som akkumulator for aritmetiske operasjoner og programteller for lagring av adressen til neste instruksjon. Denne spesialiserte funksjonaliteten kan gjøre programmering og feilsøking enklere. Redusert kompleksitet: Ved å tilby dedikerte registre for spesifikke formål, reduserer 8085-mikroprosessoren kompleksiteten til programmerings- og utførelsesprosessen.
Ulemper:
- Begrenset lagringskapasitet: 8085-mikroprosessoren har et begrenset antall registre, som kan begrense mengden data som kan lagres og manipuleres til enhver tid. Komplekse adresseringsmoduser: Noen av adresseringsmodusene som brukes i 8085-mikroprosessoren kan være komplekse, noe som kan gjøre programmering vanskeligere. Kontekstbytte: I noen tilfeller kan bytte mellom forskjellige sett med registre legge til overhead og kompleksitet til programmeringsprosessen. Mangel på fleksibilitet: Det faste antallet og funksjonen til registre i 8085 mikroprosessoren kan begrense fleksibiliteten til systemet og gjøre det vanskeligere å tilpasse seg endrede krav.