Wat is een instructieset?

Elke CPU is vanaf het begin ontworpen om een ​​bepaalde instructieset te ondersteunen. Een instructieset is een reeks hardgecodeerde bewerkingen die de CPU kan uitvoeren. Deze bewerkingen kunnen bijvoorbeeld twee getallen bij elkaar optellen, naar een ander deel van het programma springen of twee waarden vergelijken. Elke bewerking die een computer kan uitvoeren, wordt op unieke wijze weergegeven door een opcode.

Opcodes

Bij het uitvoeren van een programma gebruikt de CPU een programmateller om bij te houden welke instructie vervolgens moet worden uitgevoerd. Wanneer een instructie wordt opgehaald, wordt de programmateller opgehoogd met de lengte van de instructie, zodat deze naar het begin van de volgende instructie wijst. Elke instructie bestaat uit een opcode. Afhankelijk van de instructie kan deze al dan niet operanden bevatten. Operanden kunnen een constante waarde zijn of een verwijzing naar de locatie van een waarde in het CPU-register of in het systeem-RAM.

Nadat de volledige instructie is opgehaald, moet deze worden gedecodeerd. Dit is het proces waarbij de CPU de opcode en eventuele operanden scheidt. De gedecodeerde opcode wordt gebruikt om specifieke elektrische paden in de CPU in of uit te schakelen die zullen resulteren in de juiste werking.

Nadat de instructie is gedecodeerd, wordt deze uitgevoerd. Het exacte gedrag van de CPU hangt af van de bewerking. Een optelbewerking zal twee waarden bij elkaar optellen. Een sprongbewerking berekent waar in het programma naartoe moet worden gesprongen. Een vergelijkingsbewerking vergelijkt twee waarden. Een NOP-operatie blijft inactief, aangezien NOP staat voor No Operation.

De meeste instructies geven dan het resultaat van de bewerking weer. Deze uitvoer kan naar de processorregisters gaan en, indien nodig, naar het systeem-RAM. Elk van deze bewerkingen duurt een enkele klokcyclus om te voltooien.

Illegale opcodes

Elke CPU-architectuur heeft zijn specifieke lijst met opcodes die door de fabrikant is gepubliceerd. De waarden van deze opcodes zijn niet noodzakelijkerwijs hetzelfde platformoverschrijdend, daarom moet software voor verschillende architecturen worden gecompileerd. In sommige gevallen voegt de fabrikant ook ongedocumenteerde opcodes toe. Deze worden "illegale opcodes" genoemd. Illegale opcodes, hoewel ongedocumenteerd, zullen elke keer dat ze worden aangeroepen dezelfde functie uitvoeren. Als niet-gedocumenteerde en niet-standaardfuncties kunnen updates van de CPU-architectuur ze echter eenvoudig verwijderen.

Sommige vroege computerspellen op de Apple II vertrouwden op specifieke illegale opcodes. Ze kregen toen prestatie- en stabiliteitsproblemen bij de latere Apple IIc CPU-revisie, aangezien de IIc de illegale opcodes verwijderde die de games nodig hadden. Illegale opcodes werden ook gebruikt in kringen van auteursrechtbescherming als beveiligingsmethode door onduidelijkheid in hun strijd tegen piraten die hun inhoud kraken. Sommige illegale opcodes zijn simpelweg bedoeld als foutopsporingstools en foutafhandelaars.

De x86-instructieset bevat een groot aantal ongedocumenteerde illegale opcodes. Interessant is dat sommige hiervan worden gedeeld tussen Intel- en AMD-CPU's, wat aangeeft dat beide bedrijven publiekelijk op de hoogte zijn van hun doel terwijl ze ongedocumenteerd zijn.

Samenstellers en montage

De meeste programma's zijn geschreven in talen van hoog niveau. Deze zijn relatief gemakkelijk te lezen en gebruiken vaak Engelse woorden of steno om leercurven te minimaliseren. Om een ​​computer deze programma's te laten uitvoeren, moeten ze worden gecompileerd. Een compiler is eigenlijk een vertaler. Het neemt de code op hoog niveau en zet deze om in computercode, de instructies die de CPU kan begrijpen.

In sommige talen is het ook mogelijk om niet-gecompileerde code door een eerder gecompileerd programma te laten lopen dat direct machinecode genereert. Assemblage is een programmeertaal op laag niveau die steno gebruikt om ontwikkelaars directe zichtbaarheid en controle over de uitgevoerde bewerkingen te geven. NOP is een voorbeeld van steno voor montage.

Conclusie

Een instructieset is een lijst met officiële functies die een CPU-architectuur kan uitvoeren. Het is een lijst met bewerkingen die kunnen worden uitgevoerd. Deze bewerkingen zijn hard gecodeerd in de CPU en worden aangeroepen met behulp van hun respectieve opcodes.

Software gebruikt over het algemeen een compiler om te vertalen van voor mensen leesbare code op hoog niveau naar de machinecode die de CPU kan lezen. Soms kan een CPU-architectuur ongedocumenteerde opcodes hebben, illegale opcodes genoemd. Illegale opcodes maken technisch gezien deel uit van de instructieset. Ze zijn echter mogelijk niet betrouwbaar beschikbaar in toekomstige iteraties van het platform. Vergeet niet om uw mening achter te laten in de opmerkingen hieronder.



Hoe een harde schijf te klonen

Hoe een harde schijf te klonen

In het moderne digitale tijdperk, waarin gegevens een waardevol bezit zijn, kan het klonen van een harde schijf op Windows voor velen een cruciaal proces zijn. Deze uitgebreide gids

Hoe repareer ik het stuurprogramma WUDFRd kan niet worden geladen op Windows 10?

Hoe repareer ik het stuurprogramma WUDFRd kan niet worden geladen op Windows 10?

Krijgt u tijdens het opstarten van uw computer de foutmelding dat het stuurprogramma WUDFRd niet op uw computer kan worden geladen?

Hoe u NVIDIA GeForce Experience-foutcode 0x0003 kunt oplossen

Hoe u NVIDIA GeForce Experience-foutcode 0x0003 kunt oplossen

Ervaar je NVIDIA GeForce-ervaring met foutcode 0x0003 op je desktop? Zo ja, lees dan de blog om te zien hoe u deze fout snel en eenvoudig kunt oplossen.

3D-printen: problemen oplossen met het buigen van de onderkant van de print (olifantenpoot)

3D-printen: problemen oplossen met het buigen van de onderkant van de print (olifantenpoot)

Het kan vervelend zijn om te maken te krijgen met buigingen aan de onderkant van een afdruk. Hier ziet u hoe u de olifantenpoot kunt repareren in 3D-printen.

Basisprincipes van 3D-printen: hechting van het printerbed

Basisprincipes van 3D-printen: hechting van het printerbed

Leren over 3D-printen? Dit is wat u moet weten over ahesie van het printerbed.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Fix Roku speelt geen audio of video af

Fix Roku speelt geen audio of video af

Als Roku geen audio of video afspeelt, biedt deze gids voor probleemoplossing u een reeks handige oplossingen om het probleem op te lossen.

Fix Roku-kanaal kon inhoud niet laden

Fix Roku-kanaal kon inhoud niet laden

Als Roku een foutmelding geeft dat de inhoud op de kanalen niet kan worden geladen, kunt u uw apparaat opnieuw opstarten of een nieuw account maken.

Oplossing: Chromebook laadt geen afdrukvoorbeeld

Oplossing: Chromebook laadt geen afdrukvoorbeeld

Als uw Chromebook het afdrukvoorbeeld niet kan laden, start u uw laptop, printer en router opnieuw op. Verwijder bovendien de printer en installeer deze opnieuw.

Een GPU verwijderen van een Windows-pc in 2023

Een GPU verwijderen van een Windows-pc in 2023

Moet u de GPU van uw pc verwijderen? Ga met me mee terwijl ik uitleg hoe je een GPU van je pc verwijdert in deze stapsgewijze handleiding.