CPU's identificeren zich niet rechtstreeks tussen 8-bit en 16-bit bewerkingen op de manier waarop u denkt. Hier is een uitsplitsing van hoe het werkt:
1. Instructiecodering:
* Instructieset: Elke CPU heeft een specifieke reeks instructies die het begrijpt. Deze instructies zijn in binair gecodeerd en de codering bepaalt de te uitvoeren bewerking.
* Operandgrootte: De instructie zelf bevat meestal informatie over de grootte van de gegevens waarop deze werkt. Dit kan direct worden gecodeerd in de instructie of geïmpliceerd door de gekozen instructie.
2. Registers:
* Registers voor algemene doeleinden: De meeste CPU's hebben registers die kunnen worden gebruikt voor verschillende bewerkingen. Deze registers kunnen mogelijk 8-bit, 16-bit, 32-bit (of zelfs grotere) gegevens bevatten, afhankelijk van de CPU-architectuur.
* Registermaat: De architectuur van de CPU bepaalt de grootte van de registers. Een 16-bits CPU heeft bijvoorbeeld registers die 16 bits gegevens kunnen opslaan.
3. Geheugenadressering:
* Adresseringsmodi: De CPU gebruikt adresseringsmodi om toegang te krijgen tot gegevens in het geheugen. Sommige adresseringsmodi kunnen rechtstreeks de grootte van de toegankelijk van de gegevens opgeven, terwijl anderen dit kunnen impliceren op basis van de instructie.
4. Uitvoering:
* Bewerkingsuitvoering: Wanneer de CPU een instructie uitvoert, gebruikt deze de informatie die wordt gecodeerd in de instructie (inclusief operandgrootte) om de juiste bewerking en gegevensgrootte te bepalen. Het heeft toegang tot de benodigde gegevens van registers of geheugen, voert de bewerking uit en slaat het resultaat dienovereenkomstig op.
Voorbeeld:
Laten we ons een eenvoudige instructie voorstellen:`Axe toevoegen, bx` (in assemblagetaal).
* `Add` specificeert de bewerking (toevoeging).
* `Ax` en` bx` zijn algemene registers.
* De grootte van de registers (en dus de bewerking) wordt geïmpliceerd door de architectuur van de CPU. In een 16-bits systeem zouden `ax` en` bx` 16-bits registers zijn, dus de bewerking 'add` zou een 16-bits toevoeging uitvoeren.
belangrijke opmerkingen:
* verschillende architecturen: Verschillende CPU's hebben verschillende architecturen en instructiesets. Sommige CPU's kunnen speciale instructies gebruiken voor specifieke operandgroottes, terwijl anderen mogelijk afhankelijk zijn van impliciete formaatinformatie binnen instructies.
* bewerkingen van gemengde grootte: Veel CPU's kunnen bewerkingen omgaan met verschillende gegevensgroottes (bijvoorbeeld het toevoegen van een 8-bits waarde aan een 16-bits waarde). De CPU kan automatisch de kleinere waarde uitbreiden die overeenkomt met de grootte van de grotere waarde voordat de bewerking wordt uitgevoerd.
In wezen gaat het niet om de CPU die tussen 8-bit en 16-bit bewerkingen "identificeert"; Het gaat erom de CPU met behulp van de gecodeerde informatie binnen instructies en zijn eigen architecturale ontwerp om de grootte van de gegevens en de bewerkingen erop te bepalen. |