CPU-er identifiserer ikke direkte mellom 8-biters og 16-biters operasjoner på den måten du kanskje tenker. Her er en oversikt over hvordan det fungerer:
1. Instruksjonskoding:
* Instruksjonssett: Hver CPU har et spesifikt sett med instruksjoner den forstår. Disse instruksjonene er kodet i binær, og kodingen bestemmer operasjonen som skal utføres.
* operandstørrelse: Selve instruksjonen inneholder vanligvis informasjon om størrelsen på dataene den opererer på. Dette kan kodes direkte i instruksjonen eller antydet av den valgte instruksjonen.
2. Registre:
* Generelle formålsregistre: De fleste CPU -er har registre som kan brukes til forskjellige operasjoner. Disse registerene kan være i stand til å holde 8-biters, 16-biters, 32-biters (eller enda større) data, avhengig av CPU-arkitekturen.
* Registerstørrelse: CPUs arkitektur dikterer størrelsen på registrene. For eksempel vil en 16-bit CPU ha registre som kan lagre 16 biter av data.
3. Minneadresse:
* Adresseringsmodus: CPU bruker adresseringsmodus for å få tilgang til data i minnet. Noen adresseringsmodus kan direkte spesifisere størrelsen på dataene som får tilgang til, mens andre kan innebære dem basert på instruksjonen.
4. Utførelse:
* Operasjonsutførelse: Når CPU utfører en instruksjon, bruker den informasjonen som er kodet i instruksjonen (inkludert operandstørrelse) for å bestemme passende drift og datastørrelse. Den får tilgang til nødvendige data fra registre eller minne, utfører operasjonen og lagrer resultatet deretter.
Eksempel:
La oss forestille oss en enkel instruksjon:`legg til øks, bx` (på forsamlingsspråk).
* `Legg til` spesifiserer operasjonen (tillegg).
* `AX` og` BX` er generelle formålsregistre.
* Størrelsen på registrene (og derfor operasjonen) antydes av CPUs arkitektur. I et 16-biters system ville `Axe` og` BX` være 16-biters registre, så `Add`-operasjonen ville utføre et 16-biters tillegg.
Viktige merknader:
* Varierende arkitekturer: Ulike CPU -er har forskjellige arkitekturer og instruksjonssett. Noen CPU -er kan bruke dedikerte instruksjoner for spesifikke operandstørrelser, mens andre kan stole på informasjon om implisitt størrelse innen instruksjoner.
* operasjoner med blandet størrelse: Mange CPU-er kan håndtere operasjoner som involverer forskjellige datastørrelser (f.eks. Å legge til en 8-bits verdi til en 16-bits verdi). CPU kan automatisk utvide den mindre verdien for å samsvare med størrelsen på den større verdien før du utfører operasjonen.
I hovedsak handler det ikke om at CPU "identifiserer" mellom 8-biters og 16-biters operasjoner; Det handler om CPU ved å bruke den kodede informasjonen innen instruksjoner og sin egen arkitektoniske design for å bestemme størrelsen på dataene og operasjonene som skal utføres på den.