CPU'er identificerer ikke direkte mellem 8-bit og 16-bit operationer på den måde, du måske tænker på. Her er en sammenbrud af, hvordan det fungerer:
1. Instruktionskodning:
* Instruktionssæt: Hver CPU har et specifikt sæt instruktioner, den forstår. Disse instruktioner er kodet i binær, og kodningen bestemmer den operation, der skal udføres.
* operandstørrelse: Selve instruktionen indeholder normalt oplysninger om størrelsen på de data, den fungerer på. Dette kan kodes direkte inden for instruktionen eller underforstået af den valgte instruktion.
2. Registre:
* Generelle registre: De fleste CPU'er har registre, der kan bruges til forskellige operationer. Disse registre kan muligvis have 8-bit, 16-bit, 32-bit (eller endda større) data, afhængigt af CPU-arkitekturen.
* Registerstørrelse: CPU's arkitektur dikterer størrelsen på dens registre. For eksempel vil en 16-bit CPU have registre, der kan gemme 16 bit data.
3. Hukommelsesadressering:
* adresseringstilstande: CPU'en bruger adresseringstilstande til at få adgang til data i hukommelsen. Nogle adresseringstilstande kan direkte specificere størrelsen på de data, der er adgang til, mens andre muligvis antyder det baseret på instruktionen.
4. Udførelse:
* driftsudførelse: Når CPU'en udfører en instruktion, bruger den de oplysninger, der er kodet i instruktionen (inklusive operandstørrelse) til at bestemme den relevante drift og datastørrelse. Det får adgang til de nødvendige data fra registre eller hukommelse, udfører operationen og gemmer resultatet i overensstemmelse hermed.
Eksempel:
Lad os forestille os en simpel instruktion:`Tilføj AX, BX` (på samlingssprog).
* `Tilføj 'Specificerer operationen (tilføjelse).
* `Ax` og` Bx` er generelle formålsregistre.
* Størrelsen på registre (og derfor operationen) antydes af CPU's arkitektur. I et 16-bit-system ville `AX 'og` BX` være 16-bit registre, så `tilføj' -operationen ville udføre en 16-bit tilføjelse.
Vigtige noter:
* Varierende arkitekturer: Forskellige CPU'er har forskellige arkitekturer og instruktionssæt. Nogle CPU'er bruger muligvis dedikerede instruktioner til specifikke operandstørrelser, mens andre kan stole på information om implicit størrelse inden for instruktioner.
* operationer i blandet størrelse: Mange CPU'er kan håndtere operationer, der involverer forskellige datastørrelser (f.eks. Tilføjelse af en 8-bit værdi til en 16-bit værdi). CPU'en udvider muligvis automatisk den mindre værdi, så den matcher størrelsen på den større værdi, før operationen udføres.
I det væsentlige handler det ikke om, at CPU'en "identificerer" mellem 8-bit og 16-bit operationer; Det handler om CPU'en ved hjælp af de kodede oplysninger inden for instruktioner og dets eget arkitektoniske design til at bestemme størrelsen på dataene og de operationer, der skal udføres på det.