7: De Hypothetische x86 Flashcards
Welke elementen heeft de processor x86?
- registers
- ALU (arithmetic & logic unit)
- BIU (bus interface unit)
- Control unit met instructieset
Wat zijn registers?
Speciale geheugenplaatsen in de processor.
Ze maken geen deel uit van het hoofdgeheugen.
Alle bewerkingen gebeuren in de registers van een processor.
Welke registers heeft de x86?
De x86 heeft 4 registers van 16 bits.
- AX: accumulator register
- BX: base address register
- CX: count register
- DX: data register
Welke interne registers zijn er ook nog?
- De instruction pointer
- Een vlaggenregister
Deze interne registers zijn voor de programmeur niet rechtstreeks toegankelijk.
Vlaggenregister?
Deze interne register houdt het resultaat van een compare opdracht bij.
Daarin vinden we terug of een waarde groter, kleiner of gelijk aan een andere waarde is.
Wat is het voordeel van registers in de CPU?
Hierdoor werken ze sneller dan het geheugen.
Het bereiken van een geheugenadres zal een aantal klokcycli vragen. Gegevens in registers zullen meestal direct bereikbaar zijn.
Wat is het nadeel van registers in de CPU?
Het aantal registers is meestal zeer beperkt.
De meeste registers hebben een special purpose waardoor ze beperkt zijn in hun mogelijkheden om gegevens bij te houden.
Wat gebeurt er in de ALU?
In de Arithmetic en Logic Unit worden de rekenkundige en logische bewerkingen uitgevoerd.
Welke stappen zijn er nodig in de ALU wanneer je de waarde 6 wil optellen bij de inhoud van het AX-register?
- kopieer de waarde van AX naar de ALU
- stuur de waarde 6 naar de ALU
- geef de opdracht aan de ALU om een optelling uit te voeren
- breng het resultaat terug naar het AX-register
Waarvoor is BIU verantwoordelijk?
De Bus Interface Unit (BIU) is verantwoordelijk voor het besturen van de adres- en databus bij het lezen van of het schrijven naar het geheugen.
Als de processor gebruik maakt van cachegeheugen is deze unit daar ook verantwoordelijk voor.
Hoe is de instructieset van een CPU gemaakt?
Op basis van logische poorten.
Waarom is de instructieset eerder beperkt in omvang?
Om het aantal logische poorten zo klein mogelijk (toch al heel snel enkele honderduizenden) te houden.
Wat doet de Control Unit?
De CU voert de stappen van de instructiecyclus (fetch en execute) uit.
Welk speciaal register heeft de control unit?
De instructiepointer.
Wat doet de instructiepointer?
In de instructiepointer staat het adres van een uitvoerbare instructie.
Op basis van dat adres gaat de control unit een instructie uit het geheugen halen en naar het decodeerregister brengen voor de uitvoering ervan.
Na het uitvoeren van de instructie wordt de instructiepointer aangepast zodat hij naar de volgende instructie wijst.
Deze interne register wijst naar de volgende uit te voeren instructie.
Waarmee wordt er rekening gehouden bij het ontwerp van een instructieset?
Dat de opcodes een veelvoud van 8 bits breed zijn.
Daardoor kunnen de instructies op een eenvoudige manier uit het geheugen gehaald worden.
Hoe worden de bits van een opcode verdeeld?
De bedoeling is de beschikbare bits op een goede manier te verdelen tussen het veld voor de instructieklasse (move, add,…) en de velden die de operanden aanduiden (geheugenlocaties en registers).
Meer bits voor het instructieveld (meer instructies) betekent minder bits voor het operandenveld, en vice versa.
Er moet ook rekening gehouden worden met instructies die maar één operand of zelfs geen operanden gebruiken.
Over welke instructies beschikt de instructieset van x86-processoren?
De x86-processoren zijn voorzien van een instructieset met 20 basisklassen.
7 van die instructies hebben twee operanden, acht instructies hebben één operand en vijf instructies werken zonder operanden.
De instructies zijn MOV (2 soorten), ADD, SUB, CMP, AND, OR, NOT, JE, JNE, JB, JBE, JA, JAE, JMP, BRK, IRET, HALT, GET en PUT.
MOV-instructie?
De MOV is in feite een naam voor twee klassen die samensmelten tot één instructie.
- MOV reg, reg/mem/const
- MOV mem, reg
Daarbij staat ‘reg’ voor register (AX, BX, CX, DX), ‘const’ voor een numerieke constante waarde (in hexadecimale voorstelling) en ‘mem’ voor een adres in het geheugengebied.
Welke rekenkundige en logische bewerkingen heeft de instructieset van een x86-processor?
- ADD reg, reg/mem/const
- SUB reg, reg/mem/const
- CMP reg, reg/mem/const
- AND reg, reg/mem/const
- OR reg, reg/mem/const
- NOT reg, reg/mem/const
ADD instructie?
Door de ADD wordt de waarde van de tweede operand bij de eerste operand geteld.
Het resultaat komt in de eerste operand terecht.
SUB-instructie?
De SUB laat het verschil van de eerste operand en de tweede operand in de eerste operand achter.
CMP-instructie?
De CMP vergelijkt de eerste en tweede operand en zal het resultaat in een afzonderlijk register opslaan zodat de voorwaardelijke sprongopdrachten er gebruik van kunnen maken.