Användarnas synliga register stöder vanligtvis datakategorier som återspeglar behoven hos den underliggande hårdvaran och instruktionerna som processorn kan utföra. Vanliga kategorier inkluderar:
* Allmänna register: Det här är arbetshästarna. De har data involverade i aritmetiska och logiska operationer, dataöverföringar och adressberäkningar. De är mycket flexibla och kan innehålla olika datatyper.
* Specialveriktsregister: Dessa register har dedikerade funktioner. Exempel inkluderar:
* Programräknare (PC): Har adressen till nästa instruktion som ska köras.
* Instruktionsregister (IR): Lagrar tillfälligt den för närvarande hämtade instruktionen.
* statusregister (flaggor): Ange resultaten från aritmetiska och logiska operationer (t.ex. bär, noll, överflöde, tecken). Dessa flaggor är ofta bitfält inom ett enda register.
* stackpekare (SP): Pekar på toppen av stacken i minnet.
* rampekare (FP eller BP): Används i procedursamtal för att hantera stackramen.
* Minnesadress Register: Används för direkt minnesåtkomst (DMA) eller specifikt minneskartade I/O-operationer.
* flytande punktregister (FPRS): Håll flytande punktnummer för aritmetiska och andra flytande punktoperationer. Dessa är ofta åtskilda från allmänna register, och deras storlek och antal varierar mellan arkitekturer.
* vektorregister: Används för enstaka instruktioner, flera data (SIMD) -operationer, innehar flera dataelement som behandlas samtidigt.
* Kontrollregister: Dessa register kontrollerar olika aspekter av processorns operation, såsom avbrott, cachning och minneshantering. Tillgång till dessa är ofta privilegierad, vilket betyder att endast operativsystemet direkt kan modifiera dem.
De specifika kategorierna och deras antal varierar signifikant mellan olika processorarkitekturer (t.ex. x86, arm, RISC-V). Vissa arkitekturer kan ha specialiserade register för specifika instruktioner eller uppgifter, medan andra kan lita på en mer allmän registeruppsättning.