Introductie:
A microprocessor is een multifunctioneel, programmeerbaar, klokgestuurd, op registers gebaseerd elektronisch apparaat dat binaire instructies leest van een opslagapparaat dat geheugen wordt genoemd, binaire gegevens als invoer accepteert en gegevens verwerkt volgens die instructies en resultaten levert als uitvoer. Een 8085-microprocessor is een 8-bits microprocessor van de tweede generatie en vormt de basis voor het bestuderen en gebruiken van alle microprocessors die op de markt verkrijgbaar zijn.
Waarom registers gebruiken in een 8085-microprocessor?
Hier zijn enkele redenen waarom registers worden gebruikt in de 8085-microprocessor:
- Tijdelijke opslag: Registers worden gebruikt als tijdelijke opslaglocatie voor gegevens die door de microprocessor moeten worden verwerkt. Bij het uitvoeren van rekenkundige bewerkingen worden de operanden bijvoorbeeld doorgaans opgeslagen in registers.
- Adressering: Registers worden gebruikt voor het adresseren van geheugenlocaties in de 8085-microprocessor. Het programmateller (PC) register houdt de geheugenlocatie van de huidige instructie bij, terwijl het stack pointer (SP) register de bovenkant van de stapel bijhoudt.
- Invoer/uitvoer: Registers worden gebruikt voor communicatie met invoer/uitvoer (I/O)-apparaten. Het accumulatorregister (A) wordt bijvoorbeeld gebruikt voor communicatie met de databus, die is aangesloten op I/O-apparaten.
- Statusinformatie: Registers worden gebruikt voor het opslaan van statusinformatie over de status van de microprocessor. In het vlagregister wordt bijvoorbeeld informatie opgeslagen over de resultaten van rekenkundige en logische bewerkingen, inclusief of een resultaat negatief, nul of carry is.
- Optimalisatie: Registers worden gebruikt om de prestaties van de microprocessor te optimaliseren. Door registers te gebruiken om veelgebruikte gegevens en instructies op te slaan, heeft de microprocessor sneller toegang tot deze informatie dan wanneer hij deze uit het geheugen zou moeten ophalen.
Registreert in 8085:
(a) Registers voor algemene doeleinden – De 8085 heeft zes registers voor algemene doeleinden om 8-bits gegevens op te slaan; deze worden geïdentificeerd als B, C, D, E, H en L. Deze kunnen worden gecombineerd als registerparen – BC, DE en HL, om een 16-bits bewerking uit te voeren. Deze registers worden gebruikt om tijdelijke gegevens op te slaan of te kopiëren, met behulp van instructies, tijdens de uitvoering van het programma.
java-parseerreeks naar int
(b) Registers voor specifieke doeleinden –
- Accumulator: De accumulator is een 8-bits register (kan 8-bits gegevens opslaan) dat deel uitmaakt van de rekenkundige en logische eenheid (ALU). Na het uitvoeren van rekenkundige of logische bewerkingen wordt het resultaat opgeslagen in de accumulator. Accumulator wordt ook gedefinieerd als register A. Vlagregisters:
Het vlagregister is een register voor speciale doeleinden en verschilt totaal van andere registers in de microprocessor. Het bestaat uit 8 bits en slechts 5 daarvan zijn bruikbaar. De andere drie blijven leeg en worden gebruikt in de toekomstige Intel-versies. Deze 5 vlaggen worden ingesteld of gereset (als de waarde van de vlag 1 is, wordt er gezegd dat deze is ingesteld en als de waarde 0 is, wordt er gezegd dat deze is gereset ) na een bewerking volgens de gegevensconditie van het resultaat in de accumulator en andere registers. De 5 vlagregisters zijn:- Tekenvlag: Het beslaat de zevende bit van het vlagregister, ook wel de meest significante bit genoemd. Het helpt de programmeur om te weten of het in de accumulator opgeslagen getal positief of negatief is. Als de tekenvlag is ingesteld, betekent dit dat het in de accumulator opgeslagen getal negatief is, en als het wordt gereset, is het getal positief. Nulvlag:: deze beslaat de zesde bit van het vlagregister. Het wordt ingesteld wanneer de in de ALU uitgevoerde bewerking nul oplevert (alle 8 bits zijn nul), anders wordt het gereset. Het helpt bij het bepalen of twee getallen gelijk zijn of niet. Hulpdraagvlag: deze beslaat het vierde bit van het vlagregister. Wanneer bij een rekenkundige bewerking een carry-vlag wordt gegenereerd door het derde bit en wordt doorgegeven aan het vierde bit, wordt de hulp-carry-vlag ingesteld. Als dit niet het geval is, wordt de vlag gereset. Deze vlag wordt intern gebruikt voor BCD-bewerkingen (Binary-Coded Decimal Number). Opmerking - Dit is het enige vlagregister in 8085 dat niet toegankelijk is voor de gebruiker. Pariteitsvlag: deze bezet de tweede bit van het vlagregister. Deze vlag test het aantal 1-en in de accumulator. Als de accumulator een even aantal enen bevat, wordt deze vlag ingesteld en wordt er gezegd dat deze even pariteit is. Aan de andere kant, als het aantal 1-en oneven is, wordt het gereset en wordt er sprake van oneven pariteit. Carry Flag: Het bezet de nulde bit van het vlagregister. Als de rekenkundige bewerking resulteert in een carry (als het resultaat meer dan 8 bit is), wordt de Carry Flag ingesteld; anders wordt het gereset.
(c) Geheugenregisters – Er zijn twee 16-bits registers die worden gebruikt om geheugenadressen vast te houden. De grootte van deze registers is 16 bits omdat de geheugenadressen 16 bits zijn. Zij zijn :-
- Programmateller: Dit register wordt gebruikt om de uitvoering van de instructies te volgen. De functie van de programmateller is om naar het geheugenadres te verwijzen waaruit de volgende byte moet worden opgehaald. Wanneer een byte (machinecode) wordt opgehaald, wordt de programmateller met één verhoogd om naar de volgende geheugenlocatie te wijzen. Stack Pointer: Het wordt gebruikt als geheugenaanwijzer. Het verwijst naar een geheugenlocatie in het lees-/schrijfgeheugen, de stapel genoemd. Tijdens de push- en pop-bediening wordt deze altijd met 2 verhoogd/verlaagd.
- Tekenvlag (7e bit): Deze wordt gereset (0), wat betekent dat het in de accumulator opgeslagen getal positief is. Nulvlag (6e bit): Deze wordt gereset (0), dus het resultaat van de in de ALU uitgevoerde bewerkingen is niet nul. Hulp-carryvlag (4e bit): We kunnen zien dat b3 een carry genereert die wordt genomen door b4, dus wordt de hulp-carry-vlag ingesteld (1). Pariteitsvlag (2e bit): Deze wordt gereset (0), dit betekent dat de pariteit oneven is. De accumulator bevat een oneven aantal 1-en. Carry Flag (0e bit): Deze is ingesteld op (1), de uitvoer resulteert in meer dan 8 bit.
Gebruik van registers van 8085-microprocessor:
Hier volgen enkele algemene toepassingen van de verschillende registers in de 8085-microprocessor:
- Accumulatorregister (A): Het accumulatorregister is het meest gebruikte register in de 8085-microprocessor. Het wordt gebruikt voor rekenkundige en logische bewerkingen, maar ook voor invoer/uitvoer (I/O)-bewerkingen. De accumulator wordt ook gebruikt als tijdelijke opslaglocatie voor gegevens.
- Programmateller (PC) register: Het PC-register wordt gebruikt om de geheugenlocatie van de huidige instructie bij te houden. Wanneer een instructie wordt uitgevoerd, wordt het PC-register automatisch opgehoogd om naar de volgende instructie in het geheugen te verwijzen.
- Stack Pointer (SP) register: Het SP-register wordt gebruikt om de bovenkant van de stapel bij te houden. De stapel wordt gebruikt voor tijdelijke opslag van gegevens en retouradressen tijdens subroutineoproepen.
- Vlagregister: Het vlagregister wordt gebruikt om statusinformatie op te slaan over de resultaten van rekenkundige en logische bewerkingen, inclusief of een resultaat negatief, nul of carry is.
- Registers voor algemeen gebruik (B, C, D, E, H en L): deze registers worden gebruikt voor de opslag van gegevens voor algemene doeleinden en voor het adresseren van geheugenlocaties. Ze kunnen in paren worden gebruikt als 16-bits registers, zoals BC, DE en HL, voor een efficiëntere adressering van geheugenlocaties.
- Instructieregister (IR) en machinecyclusregister (MCR): Deze registers worden intern door de microprocessor gebruikt om instructies te decoderen en de timing van machinecycli te controleren.
Kenmerken van deze registers zijn:
- Alle registers in de 8085-microprocessor zijn rechtstreeks toegankelijk voor de rekenkundige en logische eenheid (ALU), waardoor een efficiënte gegevensverwerking mogelijk is.
- Het accumulatorregister wordt gebruikt als standaardbestemming voor de meeste rekenkundige en logische instructies, wat het programmeren vereenvoudigt.
- De registers voor algemene doeleinden kunnen worden gebruikt voor het opslaan van gegevens tijdens berekeningen, maar ze kunnen ook worden gebruikt om geheugenadressen vast te houden, waardoor ze handig zijn voor toegang tot geheugenlocaties.
- De programmateller en stapelwijzerregisters zijn cruciaal voor het beheren van de stroom instructies en gegevens binnen een programma.
- Het vlagregister biedt waardevolle informatie over de resultaten van rekenkundige en logische bewerkingen, waardoor efficiënte besluitvorming in programma's mogelijk wordt.
- Het instructieregister slaat de huidige instructie op die wordt uitgevoerd, waardoor efficiënte decodering en besturingssignaalgeneratie door de besturingseenheid mogelijk is.
Voordelen:
- Snelle toegang: Registers bieden een snelle en efficiënte manier om toegang te krijgen tot gegevens en bewerkingen uit te voeren. Omdat de registers zich in de processor bevinden, zijn ze snel toegankelijk zonder dat u hoeft te wachten tot de gegevens uit het geheugen zijn opgehaald. Verminderde geheugentoegang: Het gebruik van registers kan helpen het aantal benodigde geheugentoegangen te verminderen, wat de algehele prestaties van het systeem kan verbeteren. Gespecialiseerde functionaliteit: Elk register in de 8085-microprocessor heeft een specifieke functie, zoals de accumulator voor rekenkundige bewerkingen en de programmateller voor het opslaan van het adres van de volgende instructie. Deze gespecialiseerde functionaliteit kan het programmeren en debuggen eenvoudiger maken. Verminderde complexiteit: Door speciale registers voor specifieke doeleinden aan te bieden, vermindert de 8085-microprocessor de complexiteit van het programmeer- en uitvoeringsproces.
Nadelen:
- Beperkte opslagcapaciteit: De 8085-microprocessor heeft een beperkt aantal registers, waardoor de hoeveelheid gegevens die op een bepaald moment kan worden opgeslagen en gemanipuleerd, kan worden beperkt. Complexe adresseringsmodi: Sommige adresseringsmodi die in de 8085-microprocessor worden gebruikt, kunnen complex zijn, wat het programmeren moeilijker kan maken. Contextwisseling: In sommige gevallen kan het schakelen tussen verschillende sets registers overhead en complexiteit aan het programmeerproces toevoegen. Gebrek aan flexibiliteit: Het vaste aantal en de vaste functie van registers in de 8085-microprocessor kunnen de flexibiliteit van het systeem beperken en het moeilijker maken om zich aan te passen aan veranderende eisen.